6

我收到多个页面说调整大小事件可以在一个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 或独立页面中尝试了它,并且永远无法在元素上获得调整大小事件:

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

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

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

4

1 回答 1

0

经过一番挖掘后,他们似乎可以调整事件的大小,但并不完全按照您想要的方式。

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

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

或者

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

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

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

你真的可以用任何字符串来做。这确实通过 dom 树向上传播。假设你有一个身体内的#content,它们都有一个'resize'事件。如果您触发#content,它也会触发正文。但是,如果您使用正文触发事件,则不会触发#content。

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

$('#content').resizable({options});

如果它们被更改,它应该触发调整大小事件。

于 2013-09-04T16:04:04.923 回答