在客户端JavaScript中,窗口之外的任何元素都可以获得调整大小事件吗?

时间:2013-09-03 21:52:00

标签: javascript dom

我得到多个页面,说调整大小事件可以在bodydiv元素上:

http://www.w3schools.com/jsref/event_onresize.asp

http://v3.javascriptmvc.com/docs/jQuery.event.special.resize.html#&who=jQuery.event.special.resize

然后我在jsfiddle或独立页面中尝试过它,并且永远无法在元素上获得resize事件:

http://jsfiddle.net/sgHck/1/

http://jsfiddle.net/sgHck/8/

bodydiv可以获得调整大小事件吗?如果没有,如果我们需要缩小页面中的部分,并且部分页面依赖于scroll事件来正确放置另一个元素,以及文档的resize事件,而不是窗口,也需要窗口?

1 个答案:

答案 0 :(得分:0)

稍微挖了一下之后,似乎他们可以按照你想要的方式重新调整事件。

您可以添加像这样的调整大小事件

$('#content').resize( function(){
    //stuff to do
}

$('#content').on('resize', function(){
    //stuff to do
}

你已经在做了,但是当这些元素通过javascript代码或类似的东西调整大小时,它们就不会被激活。以这种方式触发它的唯一方法是使用

$('#content').trigger('resize');

你可以用任何字符串。这确实通过dom树传播。假设你的身体里面有#content,并且调整了大小。他们俩的活动。如果触发#content,它也会触发正文。但是,如果使用body触发事件,则不会触发#content。

但是,您似乎可以使用jquery-ui可调整大小的方法http://jqueryui.com/resizable/获得所需的功能类型。用

制作可调整大小的东西之后
$('#content').resizable({options});

如果它们被更改,它应该触发resize事件。