jQuery 窗口调整大小

发布于 2024-09-01 09:07:47 字数 739 浏览 4 评论 0原文

我有一段 JavaScript 代码,应该在调整浏览器窗口大小时处理

resize.style.marginRight=(resize.offsetWidth-$(this)[0].offsetWidth)+'px'

尝试了这个东西(不起作用):

window.onresize = function(event) {
resize.style.marginRight=(resize.offsetWidth-$(this)[0].offsetWidth)+'px'
}

完整代码可用 - http:// jsbin.com/adelu3/2/(参见页面源代码)

Html(由脚本生成):

<div class="resizable-textarea">
    <span>
        <textarea class="resizable processed" cols="" rows=""></textarea>
        <div class="resize"></div>
    </span>
</div>

谢谢。

I have piece of javascript code, which should process when the browser window is resized.

resize.style.marginRight=(resize.offsetWidth-$(this)[0].offsetWidth)+'px'

Tryed this stuff (doesn't work):

window.onresize = function(event) {
resize.style.marginRight=(resize.offsetWidth-$(this)[0].offsetWidth)+'px'
}

Full code available - http://jsbin.com/adelu3/2/ (see page source)

Html (generated by the script):

<div class="resizable-textarea">
    <span>
        <textarea class="resizable processed" cols="" rows=""></textarea>
        <div class="resize"></div>
    </span>
</div>

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟花肆意 2024-09-08 09:07:47
$(this)[0].offsetWidth

offsetWidth 是元素的一个属性。在window.onresize的回调代码中,this是一个Window,它没有offsetWidth。

this 应该是什么? (链接代码中不存在 onresize 事件。)如果要读取窗口宽度,请使用 $(window).width()

如果您想读取封闭范围中作为 this 的其他某个(祖先?)元素的宽度,则必须通过从 resize 查找来找到该元素> 元素,或者保留对闭包中其他元素的引用,例如:(

var that= this;
$(window).resize(function() {
    resize.style.marginRight= resize.offsetWidth-that.offsetWidth+'px'
});

注意。$(this)[0] 完全不执行任何操作。)

$(this)[0].offsetWidth

offsetWidth is a property of elements. In the callback code of window.onresize, this is a Window, which doesn't have an offsetWidth.

What is this supposed to be? (The onresize event is not present in the linked code.) If you want to read the window width, use $(window).width().

If you want to read the width of some other (ancestor?) element that you had as this in the enclosing scope, you must either find that element by looking up from the resize element, or retain a reference to the other element in a closure, eg.:

var that= this;
$(window).resize(function() {
    resize.style.marginRight= resize.offsetWidth-that.offsetWidth+'px'
});

(nb. $(this)[0] does precisely nothing.)

谷夏 2024-09-08 09:07:47

自己做的。

这是一个混合解决方案,它共享@bobince 的代码和我自己的代码。

var tarea= this;
function resize_width(){ resize.style.width= tarea.offsetWidth+'px'}
resize_width();
$(window).resize(function() {resize_width()});

Made myself.

This is a mixed solution, it shares @bobince's code and my own.

var tarea= this;
function resize_width(){ resize.style.width= tarea.offsetWidth+'px'}
resize_width();
$(window).resize(function() {resize_width()});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文