Если я правильно понял, вы хотите, чтобы что-нибудь на странице с классом «fixed» можно было изменять в размере, даже если класс добавляется после загрузки страницы? Вы правы, что жить, связывать и делегировать здесь не поможет.
Я могу думать о двух возможностях, ни о одной прекрасной.
Сначала настройте событие «mouseenter», которое будет изменять размер элемента, если это не было ранее:
$(body).delegate(".fixed", "mouseenter", function(ev) {
var target = $(ev.target);
if (target.data("resizable")) return;
target.resizable({
aspectRatio: true,
handles: 'all'
});
})
Это позволяет нам решить проблему отсутствия события, к которому можно привязаться.
В качестве альтернативы, вы можете установить monkeypatch jQuery.fn.addClass:
var classRe = new RegExp(c + className + \b);
._addClass = jQuery.fn.addClass;
jQuery.fn.addClass = function(className) {
if (classRe.test(classname)) {
if (this.data("resizable")) return;
this.resizable({
aspectRatio: true,
handles: 'all'
});
}
jQuery.fn._addClass.apply(this, arguments);
}
Конечно, это будет работать только в том случае, если класс добавляется с помощью метода addClass.
Также в вашем примере,
$('lyr').addClass('fixed');
Вероятно, должно быть:
$('.lyr').addClass('fixed');