显然,当替换元素时,我的JQuery事件就会消失。目前他们是这样的:
$("a[id^='anb']").click(
function () {
/* ommited for readability */;
var furl = "target_view";
$('#my_article_container').load(furl, function() {
animateThem(); });
return false;
}
);
$("div[id^='art']").hover(
function() {
$(this).fadeTo("slow", 0.33);
}
);
JQuery中是否有机制或者如何重新绑定这些事件?
答案 0 :(得分:6)
您正在寻找.live()
function。
这会在添加项目时自动监控dom并重新附加事件。
$("a[id^='anb']").live('click',
function () {
/* ommited for readability */;
var furl = "target_view";
$('#my_article_container').load(furl, function() {
animateThem(); });
return false;
}
);
$("div[id^='art']").live('hover',
function() {
$(this).fadeTo("slow", 0.33);
}
);
答案 1 :(得分:4)
这是我用Google搜索时出现的第一个答案 - 我有同样的问题。 Live已在1.7版中弃用,并在1.9版中删除。新版本的JQuery建议使用。 jQuery.on()
无论如何,只是为了保持最新状态。我最终通过包括选择器在我的工作中开始工作,例如:
$(document).on("click","a[id^='anb']",function(){....})
答案 2 :(得分:1)
请改用live
功能。
答案 3 :(得分:1)
使用$ .live()代替,它适用于这种情况。
$("a[id^='anb']").live('click', function() { ... });
$("a[id^='art']").live('hover', function() { ... });
答案 4 :(得分:1)
Live是你的朋友
答案 5 :(得分:1)
我相信你正在寻找jQuery.live()