javascript - 请教 jquery 中 trigger(’click’) 和 click() 的区别与优劣。
问题描述
$(’#btn’).trigger(’click’);
$(’#btn’).click();
求教这两种 click 事件的触发方式选择哪种更优?
问题解答
回答1:jquery2的源码
jQuery.each( ('blur focus focusin focusout load resize scroll unload click dblclick ' + 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave ' + 'change select submit keydown keypress keyup error contextmenu').split(' '), function( i, name ) { // Handle event binding jQuery.fn[ name ] = function( data, fn ) {return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); };});
看起来,$对象的click执行事件实现也是调用trigger……所以trigger更优?= =||跟 @MockingBird 的想法不同- -
回答2:trigger() 主要用来触发自定义事件
$( '#foo' ).on( 'custom', function( event, param1, param2 ) { alert( param1 + 'n' + param2 );});$( '#foo').trigger( 'custom', [ 'Custom', 'Event' ] );
@Dont 贴出了 jquery 源码, 其实 .click() 也是直接调用 .trigger() 方法,所以性能上应该是一样的。
回答3:就像jQuery.post()和jQuery.ajax()哪个更优??
明明可以猜到post肯定是调用了ajax, 那就用ajax? 就因为少了一次函数调用?然后多打好些字?浪费时间?
没有什么优不优的,你要想想别的方面, 简洁,易懂也很重要。
相关文章:
1. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)2. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题3. MYSQL新建用户设置可以远程访问的问题4. node.js - nodejs和前端JavaScript 字符串处理结果不一样是什么原因?5. java - mybatis怎么实现在数据库中有就修改,没有就添加6. mysql - 我的myeclipse一直连显示数据库连接失败,不知道为什么7. linux - 为什么我在mysql的my.cnf下找不到bind-address?8. MySQL中的enum类型有什么优点?9. mysql多表联合查询优化的问题10. 数据库设计 - MySQL数据库主键问题
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)