我有一个简单的代码:这里
$(".btn").on('click',function () {
$(".a").trigger('click');
});
$(".btn2").on('click',function () {
$(".a")[0].click();
});我试着模拟压在锚上的样子。
但是当我使用jQuery的trigger时,它不起作用(为什么?)
当我使用"jsobj".click() func时,它确实有效。
在阅读了jQuery文档之后,我看不出有什么理由不应该这样做。
帮忙?
PS:我在用Chrome。
发布于 2012-07-14 19:56:09
实际上,$(".a").trigger('click');会触发单击事件,但这并不意味着它会单击链接,相反,它将执行事件处理程序(如果已经有),即
$(".btn, .btn2").on('click',function () {
$($(".a")[0]).trigger('click'); // first element
});
$(".a").on('click', function (e){
alert(e.target);
});给定的示例将触发a的单击事件,并将执行已经为该事件注册的处理程序(匿名函数)
$(".a").on('click', function (e){...});发布于 2012-07-14 19:14:36
因为$(".a")[0]返回原始JavaScript节点,所以不能为此使用jQuery对象方法。
发布于 2012-07-14 19:24:01
这是因为JQuery的.trigger()并没有真正触发本地事件。例如,在脚本中尝试这样做:
$(".btn").on('click',function () {
$(".a").trigger('click');
});
$(".a").click(function(){alert('triggered!')});使用JQuery创建服装处理程序时,将使用.trigger()方法触发事件。
更新:--这很有趣,似乎只发生在<a>标记和href中。看看这个
https://stackoverflow.com/questions/11486630
复制相似问题