используйте change () для обнаружения изменений значения атрибута

0

Является ли это возможным? Я хочу, например, определить ширину div, привязать его с помощью функции on(), чтобы что-то сделать.

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

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

});

то я создаю кнопку, чтобы увеличить ширину #panel, но ничего не произойдет.

использовать change() для обнаружения изменений значения атрибута? смысл?

Теги:

2 ответа

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);
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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню