繁体   English   中英

使用change()来检测属性值的变化

[英]use change() to detect changes of attribute value

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

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

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

});

然后我创建一个按钮以增加#panel的宽度,但是什么也没有发生。

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

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

但是,它们已被弃用 ,不受广泛支持。

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

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

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

setInterval(function () {
  if ($panel.width() !== width) $panel.trigger('resized');
}, 50);

我建议使用以下方法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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM