1

我真的很挣扎为什么我不能得到这个触发器或点击工作?

这是JS:

$(document).ready(function () {     

    function libertyPop(){  
        var popUp = jQuery("#lightbox-30835684809970");
        popUp.click();
        popUp.trigger('click');
        console.log("should work");
    }

    libertyPop();
});

这应该会触发对该锚点的点击:

<a id="lightbox-30835684809970" style="cursor:pointer;color:blue;text-decoration:underline;">
    Liberty Pop-Up
</a>

在页面中,当我实际单击链接时,会出现弹出窗口,我不明白为什么 jquery 'trigger' 或 'click' 不一样?

4

2 回答 2

4

如果要触发锚标签的原生点击事件,使用js事件:

 var popUp = jQuery("#lightbox-30835684809970")[0]; //<< [0] will retruns the DOM node

  popUp.click();

但是由于您没有设置属性 href,这将无济于事!

如果要触发使用 jQuery 附加的单击处理程序,请先设置一个。

使用您的代码:

$(document).ready(function () {     

    function libertyPop(){  
        var popUp = jQuery("#lightbox-30835684809970");
        popUp.on('click',function(){
            console.log("WORKS!");
        }).click();
    }

    libertyPop();
});
于 2013-07-31T13:03:39.483 回答
2

在触发事件之前,您实际上并没有添加事件处理程序。这没什么关系...

尝试这个:

$(document).ready(function(){

    $("#lightbox-30835684809970").click(function(){

        console.log('clicked');

    });

    $("#lightbox-30835684809970").trigger('click');

});

这是一个jsFiddle

于 2013-07-31T13:10:29.657 回答