javascript - 請教 jquery 中 trigger(’click’) 和 click() 的區(qū)別與優(yōu)劣。
問題描述
$(’#btn’).trigger(’click’);
$(’#btn’).click();
求教這兩種 click 事件的觸發(fā)方式選擇哪種更優(yōu)?
問題解答
回答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執(zhí)行事件實現(xiàn)也是調(diào)用trigger……所以trigger更優(yōu)?= =||跟 @MockingBird 的想法不同- -
回答2:trigger() 主要用來觸發(fā)自定義事件
$( '#foo' ).on( 'custom', function( event, param1, param2 ) { alert( param1 + 'n' + param2 );});$( '#foo').trigger( 'custom', [ 'Custom', 'Event' ] );
@Dont 貼出了 jquery 源碼, 其實 .click() 也是直接調(diào)用 .trigger() 方法,所以性能上應(yīng)該是一樣的。
回答3:就像jQuery.post()和jQuery.ajax()哪個更優(yōu)??
明明可以猜到post肯定是調(diào)用了ajax, 那就用ajax? 就因為少了一次函數(shù)調(diào)用?然后多打好些字?浪費時間?
沒有什么優(yōu)不優(yōu)的,你要想想別的方面, 簡潔,易懂也很重要。
相關(guān)文章:
1. 致命錯誤: Class ’appfacadeTest’ not found2. html5 - 如何實現(xiàn)帶陰影的不規(guī)則容器?3. objective-c - iOS開發(fā)支付寶和微信支付完成為什么跳轉(zhuǎn)到了之前開發(fā)的一個app?4. css - 移動端字體設(shè)置問題5. python - 管道符和ssh傳文件6. javascript - 循環(huán)嵌套多個promise應(yīng)該如何實現(xiàn)?7. mysql優(yōu)化 - 關(guān)于mysql分區(qū)8. 請教各位大佬,瀏覽器點 提交實例為什么沒有反應(yīng)9. 前端 - IE9 css兼容問題10. javascript - ionic2 input autofocus 電腦成功,iOS手機鍵盤不彈出
