[英]jQuery click event not firing custom event handler
我使用一个jQuery库来动态创建带有click事件的链接,例如:
$parent.append('<div class="add-row"><a href="javascript:void(0)">Add another contact</a></div>');
addButton = $parent.find("div:last a");
addButton.click(function(e){
e.preventDefault();
load_contact_creation_form();
});
我想向页面添加一些代码,以便当URL包含特定标志时,会自动触发addButton.click
事件。
使用Firefox / Chrome调试工具进行检查,可以轻松找到以下链接:
$('.add-row a')
但是,尝试使用$('.add-row a').click()
单击它不会触发自定义“ click”事件。
为什么.click()
和真正的鼠标单击之间存在差异? 在这种情况下,如何触发自定义click
事件处理程序? 生成链接的代码是一个外部库,因此我很难修改它。
它似乎按我的预期工作。 检查此小提琴: http : //jsfiddle.net/d3s8topL/
$("#addDiv").click(function (){
$("#test").append('<div class="add-row"><a href="javascript:void(0)">Add another contact</a></div>');
var addButton = $("#test").find("div:last a");
addButton.click(function(e){
e.preventDefault();
alert("asdasd");
});
});
$("#triggerClick").click(function () {
$(".add-row a").click();
});
您需要使用MutationOberserver
但是,Mutation Observer API仅在较新版本的Google Chrome(> = 18)和Mozillza Firefox(> = 14)中可用。 因此,您可以为此使用jQuery插件 。 使用插件,您可以
$('.add-row').observe("childlist", "a", function(){
$(this).click(); // trigger
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.