首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery触发器单击vs单击()?

问jQuery触发器单击vs单击()?
EN

Stack Overflow用户
提问于 2012-07-14 19:11:57
回答 3查看 7.4K关注 0票数 7

我有一个简单的代码:这里

代码语言:javascript
复制
$(".btn").on('click',function () {

  $(".a").trigger('click');
});

$(".btn2").on('click',function () {

  $(".a")[0].click();
});

我试着模拟压在锚上的样子。

但是当我使用jQuery的trigger时,它不起作用(为什么?)

当我使用"jsobj".click() func时,它确实有效。

在阅读了jQuery文档之后,我看不出有什么理由不应该这样做。

帮忙?

PS:我在用Chrome。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-14 19:56:09

实际上,$(".a").trigger('click');会触发单击事件,但这并不意味着它会单击链接,相反,它将执行事件处理程序(如果已经有),即

代码语言:javascript
复制
$(".btn, .btn2").on('click',function () {
    $($(".a")[0]).trigger('click'); // first element
});

$(".a").on('click', function (e){
    alert(e.target);
});​

给定的示例将触发a的单击事件,并将执行已经为该事件注册的处理程序(匿名函数)

代码语言:javascript
复制
$(".a").on('click', function (e){...});

演示。

票数 7
EN

Stack Overflow用户

发布于 2012-07-14 19:14:36

因为$(".a")[0]返回原始JavaScript节点,所以不能为此使用jQuery对象方法。

票数 3
EN

Stack Overflow用户

发布于 2012-07-14 19:24:01

这是因为JQuery的.trigger()并没有真正触发本地事件。例如,在脚本中尝试这样做:

代码语言:javascript
复制
$(".btn").on('click',function () {

  $(".a").trigger('click');
});
$(".a").click(function(){alert('triggered!')});

使用JQuery创建服装处理程序时,将使用.trigger()方法触发事件。

更新:--这很有趣,似乎只发生在<a>标记和href中。看看这个

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11486630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档