javascript - 請(qǐng)教 jquery 中 trigger(’click’) 和 click() 的區(qū)別與優(yōu)劣。
問(wèn)題描述
$(’#btn’).trigger(’click’);
$(’#btn’).click();
求教這兩種 click 事件的觸發(fā)方式選擇哪種更優(yōu)?
問(wèn)題解答
回答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 ); };});
看起來(lái),$對(duì)象的click執(zhí)行事件實(shí)現(xiàn)也是調(diào)用trigger……所以trigger更優(yōu)?= =||跟 @MockingBird 的想法不同- -
回答2:trigger() 主要用來(lái)觸發(fā)自定義事件
$( '#foo' ).on( 'custom', function( event, param1, param2 ) { alert( param1 + 'n' + param2 );});$( '#foo').trigger( 'custom', [ 'Custom', 'Event' ] );
@Dont 貼出了 jquery 源碼, 其實(shí) .click() 也是直接調(diào)用 .trigger() 方法,所以性能上應(yīng)該是一樣的。
回答3:就像jQuery.post()和jQuery.ajax()哪個(gè)更優(yōu)??
明明可以猜到post肯定是調(diào)用了ajax, 那就用ajax? 就因?yàn)樯倭艘淮魏瘮?shù)調(diào)用?然后多打好些字?浪費(fèi)時(shí)間?
沒(méi)有什么優(yōu)不優(yōu)的,你要想想別的方面, 簡(jiǎn)潔,易懂也很重要。
相關(guān)文章:
1. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????2. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)3. html按鍵開關(guān)如何提交我想需要的值到數(shù)據(jù)庫(kù)4. css - width設(shè)置為100%之后列表無(wú)法居中5. ios - vue-cli開發(fā)項(xiàng)目webstrom會(huì)在stylus樣式報(bào)錯(cuò),飆紅,請(qǐng)大神幫忙6. javascript - 一個(gè)頁(yè)面有四個(gè)圖片,翻頁(yè)的時(shí)候想固定住某個(gè)圖片然后翻頁(yè),如何實(shí)現(xiàn)呢?7. css3 - 怎么感覺用 rem 開發(fā)的不多啊8. html5 - 用Egret寫的小游戲,怎么分享到微信呢?9. python - 在pyqt中做微信的機(jī)器人,要在表格中顯示微信好友的名字,卻顯示不出來(lái),怎么解決?10. objective-c - 自定義導(dǎo)航條為類似美團(tuán)的搜索欄樣式
