有可能吗?我想检测div的宽度,例如,用on()绑定它来做某事......
var widthVal= $('#panel').width();
$(widthVal).on('change', function(){
});
然后我创建一个按钮来增加#panel的宽度,但没有任何事情发生..
使用change()来检测属性值的变化?有意义吗?
答案 0 :(得分:0)
简单的答案是使用mutation events。
但是,它们一直是deprecated,并没有得到广泛支持。
我认为最好的办法是使用计时器定期检查CSS属性是否已更改;
var $panel = $('#panel');
var width = $panel.width();
$panel.on('resized', function () {
// do something!
});
setInterval(function () {
if ($panel.width() !== width) $panel.trigger('resized');
}, 50);
答案 1 :(得分: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);