0

可能吗?例如,我想检测 div 的宽度,将其与 on() 绑定以执行某些操作..

var widthVal= $('#panel').width();

$(widthVal).on('change', function(){

});

然后我创建了一个按钮来增加#panel 的宽度,但没有任何反应。

使用 change() 检测属性值的变化?说得通?

4

2 回答 2

0

简单的答案是使用突变事件

但是,它们已被弃用,并未得到广泛支持。

我认为您最好的选择是使用计时器定期检查 CSS 属性是否已更改;

var $panel = $('#panel');
var width = $panel.width();

$panel.on('resized', function () {
  // do something!
});

setInterval(function () {
  if ($panel.width() !== width) $panel.trigger('resized');
}, 50);
于 2013-09-26T06:02:47.910 回答
0

我建议使用以下方法http://jsfiddle.net/krasimir/5PXnv/

HTML

<div>test</div>

JS

var changeWidth = function(el, width) {
    el.css("width", width + "px");
    el.trigger("width-changed");
}
var div = $("div");
div.on("width-changed", function() {
    console.log("changed");
});
setTimeout(function() {
    changeWidth(div, 200);
}, 1000);
于 2013-09-26T06:07:15.767 回答