我有一个简单的应用程序,我决定使用ajax来加载级别以简化/无论什么原因(可能要学习一点)。
但我被卡住了......
$.ajax({
url: "actions.php",
get: "GET",
data: "show_level=" + 1,
cache: false,
success: function (views){
$(".slides_container").append(views);
}
});
问题是,附加到我的容器的视图不再可选,基本上所有的jquery函数都已停止工作了。
发生了什么事?
答案 0 :(得分:2)
如果您使用$(".target-element").click(function(){ do something here});
之类的绑定,它们仅在绑定发生时对DOM中已有的元素有效。
您需要使用$("#element-already-in-dom").on("click", ".target-element", function(){do something here});
答案 1 :(得分:0)
你是非事件冒泡的受害者。
将事件绑定到元素时,通常会在窗口加载时执行此操作。如果在窗口加载后将一个元素添加到DOM,则事件将不会绑定到它,尽管它满足事件处理程序所列出的所有其他条件。
相反,您必须使用委托,这意味着事件绑定到页面上的非更改元素,然后冒泡到正确的元素。
$('.appended-view').click(function(event) { ... }
无效
$('body').on('click', '.appended-view', function(event) { ... }
会工作