我有这个简单的代码: here
$(".btn").on('click',function () {
$(".a").trigger('click');
});
$(".btn2").on('click',function () {
$(".a")[0].click();
});
我正试图模仿按下Anchor。
但是当我使用jQuery的trigger
时,它不起作用(为什么?)
当我使用"jsobj".click()
func时,它确实有效。
阅读完jQuery文档后,我没有看到为什么不应该这样做的原因。
帮助?
PS:我正在使用Chrome。
答案 0 :(得分:6)
实际上$(".a").trigger('click');
触发了click事件,但并不意味着它会点击链接,而是如果你已经有了事件处理程序,它就会执行事件处理程序,即
$(".btn, .btn2").on('click',function () {
$($(".a")[0]).trigger('click'); // first element
});
$(".a").on('click', function (e){
alert(e.target);
});
给定的示例将触发a
的click事件,并将使用
$(".a").on('click', function (e){...});
答案 1 :(得分:3)
因为$(".a")[0]
返回原始JavaScript节点,所以不能使用jQuery对象方法。
答案 2 :(得分:2)
这是因为JQuery的.trigger()
并没有真正触发本机事件。例如,在您的脚本中尝试这个:
$(".btn").on('click',function () {
$(".a").trigger('click');
});
$(".a").click(function(){alert('triggered!')});
使用JQuery创建服装处理程序时,那么将使用.trigger()
方法触发事件。
更新:这非常有趣,似乎仅与<a>
代码和href
一起发生。 Check this out