我使用一个jQuery库,它动态地创建一个带有点击事件的链接,如:
$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
事件处理程序?生成链接的代码是外部库,因此我无法轻易修改它。
答案 0 :(得分:0)
它似乎对我有用。检查这个小提琴: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();
});
答案 1 :(得分:0)
您需要MutationOberserver
,但Mutation Observer API仅适用于较新版本的Google Chrome(&gt; = 18)和Mozillza Firefox(&gt; = 14)。所以你可以使用jQuery plugin。使用插件,你可以做
$('.add-row').observe("childlist", "a", function(){
$(this).click(); // trigger
});