显然,当元素被替换时,我的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);
}
);
Run Code Online (Sandbox Code Playgroud)
JQuery中是否有机制或者如何重新绑定这些事件?
你正在寻找这个.live() 功能.
这将在添加项目时自动监视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);
}
);
Run Code Online (Sandbox Code Playgroud)
这是我在Google上搜索时遇到的第一个答案-我也遇到了同样的问题。Live在1.7版中已弃用,在1.9版中已删除。新版本的JQuery建议使用on。jQuery.on()
无论如何,只是为了保持最新状态。最后,我通过将选择器包含在on函数中来工作,例如:
$(document).on("click","a[id^='anb']",function(){....})
Run Code Online (Sandbox Code Playgroud)