事件處理程序的最佳做法是什麼?我不確定是否應該將按鈕的功能觸發,或者如果我應該像jQuery一樣等待按鈕的點擊事件。使用JavaScript處理事件的最佳做法
通常你可以這樣做:
$('.buttonOK').on('click', function(){
alert('ok');
});
或者只是添加按鈕上的javascript:ButtonAction().
我應該更喜歡哪個?
事件處理程序的最佳做法是什麼?我不確定是否應該將按鈕的功能觸發,或者如果我應該像jQuery一樣等待按鈕的點擊事件。使用JavaScript處理事件的最佳做法
通常你可以這樣做:
$('.buttonOK').on('click', function(){
alert('ok');
});
或者只是添加按鈕上的javascript:ButtonAction().
我應該更喜歡哪個?
簡短回答:絕對是第一種方法。事件委派的方式性能更高,但需要在代碼中添加額外的條件,所以它基本上是一種複雜性與性能折衷。
較長答案:對於少數元素,添加單個事件處理程序可以正常工作。但是,隨着您添加越來越多的事件處理程序,瀏覽器的性能開始下降。原因是聽事件是內存密集型的。
所以我應該等待用戶的HTML動作,如點擊按鈕,我使用的功能或我必須定義的按鈕來觸發一個功能? – asgasg
是@asgasg。這樣做會更好。 –
我也是新手,但我發現一個很好的做法是「函數式編程」。 這意味着你聲明你的函數,然後調用它。這有助於在有多個事件發生時您想要發生事件,例如。
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
我希望這有助於:)
嗨,感謝,我不是很新的編程,但在JavaScript中我只是想得到這一點的最佳做法,知道如果在一個大規模的平臺CMS不會延遲腳本。 – asgasg
[最佳實踐殭屍(http://meta.stackexchange.com/a/142354/1228) – Will
添加它不是在標記比較好,但在最終這是個人意見。 – epascarello