首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery -调用.trigger('click')与.click()

jQuery -调用.trigger('click')与.click()
EN

Stack Overflow用户
提问于 2012-11-22 10:16:07
回答 2查看 9.7K关注 0票数 9

在jQuery中,触发事件(如单击)的更好方法是什么?使用.trigger('click')函数或调用.click()

我一直使用.click()触发此事件,但突然决定也许我应该使用.trigger('click')

我使用这些事件触发器来触发用.on('click', function(){...})创建的事件侦听器。

我已经检查了jquery api,搜索了[ 1 ] [ 2 ]的其他stackoverflow帖子,我看不出有什么理由使用其中一个。

我更倾向于使用.trigger()来保持所有事件触发的一致性,因为它可以用来调用任何事件,包括自定义事件。但似乎.trigger()并不是在所有情况下都能工作。

触发事件的最佳方式是什么?.trigger('click')还是.click()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-22 10:18:44

如果您使用的是.trigger(),那么您的优势在于可以传递额外的参数,而.click()必须在没有任何参数的情况下调用。

摘自documentation

代码语言:javascript
复制
$('#foo').bind('custom', function(event, param1, param2) {
  alert(param1 + "\n" + param2);
});
$('#foo').trigger('custom', ['Custom', 'Event']);

'Custom''Event'分别作为param1param2传递给事件处理程序

除此之外,.click()与其他基于参数数量实现get / set的函数不同,因为它实现的是触发器/ set。对我来说,使用专用的.trigger()更符合逻辑。

票数 10
EN

Stack Overflow用户

发布于 2014-02-21 00:06:48

在使用jQuery方法时需要注意的一点是,.click()除了是一种jQuery方法外,还是一种可以在native JavaScript method元素上调用的DOM Level 2 HTML。

有一个地方可能会让人感到困惑,那就是你有一个这样的选择器:

代码语言:javascript
复制
$("#element")[0].click();

在这里,您实际上是在调用DOM元素上的方法。例如,如果您尝试

代码语言:javascript
复制
$("#element")[0].trigger('click');

您将得到一个错误,即该元素没有定义trigger方法。

请注意,在某些元素上,$('#element')[0].click();不能在Safari中工作。您需要使用一种变通方法。

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

https://stackoverflow.com/questions/13505003

复制
相关文章

相似问题

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