jQuery代码的元素不执行未在页面加载
问题描述:
我加载页面加载JavaScript的Web应用程序存在:jQuery代码的元素不执行未在页面加载
$(function() {
$('.modal-delete').click(function() {
alert();
});
});
我有一个HTML页面一系列按钮的警报空白正在单击时的消息框:
<button class="modal-delete btn danger"></button>
工作正常。
但是,有一些AJAX调用产生更多的按钮,就像上面的那些按钮,但不是在页面加载!他们可以随时创建。这些按钮不会执行任何操作,但它们只是用于加载警报。它们是相同的,但因为它们在页面加载时从来没有存在过,所以Jquery代码在这些按钮上不起作用。我如何将相同的代码附加到这些按钮?
非常感谢:)。
答
我想你会想jQuery的“活()”函数:
$('.modal-delete').live('click', function() {
alert();
});
这种结合是匹配的,而且元素在未来添加新元素时重新绑定:
“为所有与当前选择器匹配的元素添加事件处理函数,现在和未来”
答
变化的准备代码这个...
$(function() {
$("document").on("click", ".modal-delete", function() {
alert("click");
});
});
这取决于你使用的是什么版本的jQuery。 jQuery 1.7+应该使用'on()',在1.7之前应该使用'delegate()',除非你使用的是一个非常旧的版本的jQuery(在1.4.2之前),这是唯一一次你应该使用'live()'编写新代码,因为您不会有其他选项可用。 – 2012-01-30 13:34:39
非常感谢您的支持,上次我看到的是1.4版本(ish),这可能会解释我的建议。作为一个观点,每个人都有优势/劣势吗?或者它只是命名约定/版本偏好? – dougajmcdonald 2012-01-30 13:37:04