有人可以启发我的jQuery委托,处理什么事件和什么不处理。以下代码不起作用
$("#browser").delegate( ".photo", {
"load": function(e) {
alert("photo loaded");
}
});
但以下代码工作
$(".photo").load( function(e) {
alert("photo loaded");
} );
我也尝试将changeData事件委托给一个不能正常工作的类
$("#browser").delegate( ".thumbnail", {
"changeData": function(e, prop, value) {
alert( prop + " = " + value );
}
});
但以下代码工作
$(".thumbnail").bind( "changeData", function(e, prop, value) {
alert( prop + " = " + value );
}
答案 0 :(得分:11)
不
$("#browser").delegate( ".photo", {
"load": function(e) {
alert("photo loaded");
}
});
可是:
$("#browser").delegate( ".photo", "load",
function(e) {
alert("photo loaded");
});
你不能在这些事件中使用live和delegate,因为它们不会冒泡。
答案 1 :(得分:6)
这些事件不会冒泡,因此不能与live
或delegate
一起使用。
答案 2 :(得分:0)
对于较新版本的jQuery,.on()
方法在.delegate()
或.live()
方法之前受到青睐,它也不会以这种方式工作
// wrong
jQuery(selector).on('load', 'img', myFunc)
因为加载事件没有冒泡
像这样做
jQuery(selector).find('img').on('load', myFunc)