2017-07-25 35 views
-1

事件處理程序的最佳做法是什麼?我不確定是否應該將按鈕的功能觸發,或者如果我應該像jQuery一樣等待按鈕的點擊事件。使用JavaScript處理事件的最佳做法

通常你可以這樣做:

$('.buttonOK').on('click', function(){ 
    alert('ok'); 
}); 

或者只是添加按鈕上的javascript:ButtonAction().

我應該更喜歡哪個?

+2

[最佳實踐殭屍(http://meta.stackexchange.com/a/142354/1228) – Will

+0

添加它不是在標記比較好,但在最終這是個人意見。 – epascarello

回答

1

簡短回答:絕對是第一種方法。事件委派的方式性能更高,但需要在代碼中添加額外的條件,所以它基本上是一種複雜性與性能折衷。

較長答案:對於少數元素,添加單個事件處理程序可以正常工作。但是,隨着您添加越來越多的事件處理程序,瀏覽器的性能開始下降。原因是聽事件是內存密集型的。

+0

所以我應該等待用戶的HTML動作,如點擊按鈕,我使用的功能或我必須定義的按鈕來觸發一個功能? – asgasg

+0

是@asgasg。這樣做會更好。 –

0

我也是新手,但我發現一個很好的做法是「函數式編程」。 這意味着你聲明你的函數,然後調用它。這有助於在有多個事件發生時您想要發生事件,例如。

function ok() { 
      consol.log("ok"); //consol log is much less annoying for debugging 
     } 

     $(".buttonOK, .btnOK").click(ok); // calls function on class button ok or btnOK 
     $(document).keyup(function(e) {if (e.which === 13) {ok();}}); //callsfunction on enter 

我希望這有助於:)

+0

嗨,感謝,我不是很新的編程,但在JavaScript中我只是想得到這一點的最佳做法,知道如果在一個大規模的平臺CMS不會延遲腳本。 – asgasg