繁体   English   中英

jQuery click事件未触发自定义事件处理程序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM