the resize event фактически инициируется только тогда, когда окно изменяет размеры, а не когда изменяется конкретный элемент.
Если вы хотите создать событие в определенном элементе, когда оно изменено, я использовал this plugin в прошлом; работает хорошо.
Вы также можете просто сделать что-то вроде этого:
$.fn.changeSize = function(fn){
var $this = this,
w0 = $this.width(),
pause = false; // this is only necessary if you don't want the callback to overlap
$this.sizeTO = setInterval(function(){
if (!pause){
var w1 = $this.width();
if (w1 != w0) {
pause = true
w0 = w1;
fn(function(){pause=false;}); // if you don't want the callback to overlap, have the callback accept another callback to resume the check.
}
}
}, 100);
}
это проверяет элемент каждые .1 секунд. если высота изменилась, то он вызовет обратный вызов fn
.
упускают. Обратный вызов fn будет вызываться много раз за короткий период ... не так хорошо. –
У меня не было проблем с этим, но я сделал некоторые изменения, чтобы гарантировать, что выполнение обратного вызова не перекрывается. –