带有委托的Jquery.on()不响应带有绑定到锚标记的事件的动态html

带有委托的Jquery.on()不响应带有绑定到锚标记的事件的动态html,jquery,Jquery,这是我的$(文档)的一部分。就绪 $("#dynaffiliate").on("click", "a.ajaxpaginate", function(event){ event.preventDefault(); alert($(this).text()); }); 存在于pageload 当我向该类注入一堆元素时,不会触发该事件。我正在使用firefox。我也尝试过只使用普通的a,没有类,什么也没有发生 现在,我也在更深入地思考这个问题,a元素可能无法以这种方式处理,因为浏览器

这是我的
$(文档)的一部分。就绪

$("#dynaffiliate").on("click", "a.ajaxpaginate", function(event){
 event.preventDefault();
    alert($(this).text());
});  
存在于pageload

当我向该类注入一堆元素时,不会触发该事件。我正在使用firefox。我也尝试过只使用普通的
a
,没有类,什么也没有发生


现在,我也在更深入地思考这个问题,
a
元素可能无法以这种方式处理,因为浏览器将在有机会将事件冒泡到父级之前导航到链接。我是否最好使用其他元素而不是
a
标记?

适用于所有浏览器。你不是在重新装填潜水舱吗

// e.g.
$('#dynaffiliate').html('<a class="ajaxpaginate">Link text</a>');

// instead of
$('#dynaffiliate')
    .html('<div id="dynaffiliate"><a class="ajaxpaginate">Link text</a></div>');
// or
$('#dynaffiliate').append('<a class="ajaxpaginate">Link text</a>');
//例如。
$('#dynaffiliate').html('linktext');
//而不是
$(“#dynaffiliate”)
.html(“链接文本”);
//或
$('#dynaffiliate')。追加('链接文本');

也可能您使用的是1.7之前的jQuery版本。在这种情况下,您应该会在Firebug控制台中看到错误消息。

浏览器将在有机会将事件冒泡到父级之前导航到该链接。否,这不是真的,如果未取消冒泡,默认操作将仅在冒泡阶段后发生。新元素是否都是
#dynaffiliate
的后代?如果没有,它就不会工作,如果是,它应该工作。我建议您创建一个演示。您是否使用jQuery 1.7或更高版本
dynaffiliate
必须是父级。您是否试图触发该元素上的事件?…您的情况与此示例有何不同?@Purmou
dynaffiliate
可以是未被Ajax事件破坏的任何祖先。它不必是父项。@Purmou-dynaffiliate是父项并且存在。这个版本就是问题所在,效果很好。我正在将一些人的旧应用程序转换为ajax,他们有1.5版本。在我从现在开始在项目中执行任何其他操作之前,我将验证版本。委派这样的事件也很快,因为我可能会添加数百个类别(在下拉列表中翻到任何页面),并且在父级只有一个事件处理程序。浏览器版本是问题所在。现在效果很好。谢谢