我有一个位于 .html 文件中的 DIV,该文件通过以下方式加载到我的文档中:
$(document).Ready( function() {
$("#contentDiv").load("some.html")
//some.html contains a button id=saveButton
$("#saveButton").click( function () {
alert("Here I am!");
}
});
该事件不会触发。如果我剪切 some.html 的内容并将其放入文档中,呃,“物理地”,该事件将会触发。
所以,我很确定这个问题与 html 是通过 .load() 注入(inject)的事实有关。
这很麻烦,因为如果你查看页面源代码,所有 HTML 实际上都在那里,包括按钮。
所以,问题是,有什么方法可以实现这一点吗?我使用 .load() 来降低页面复杂性并提高可读性,尽管有代码折叠,但我真的不想将所有这些 HTML 拉入文档中。
编辑:此代码只是即兴输入的。这不是实际代码的剪切,只是为了演示问题所在。但是,感谢您指出这一点。
编辑2:Grrrrrrr。 });
最佳答案
load()
是异步的,因此您需要回调中的作业:
$(document).ready(function() {
$("#contentDiv").load("some.html", function(){
//some.html contains a button id=saveButton
$("#saveButton").click( function () {
alert("Here I am!");
});
});
});
希望有帮助:)
关于javascript - jQuery 绑定(bind)事件不会在通过 $().load() 加载的元素上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35019197/