事件处理程序的最佳做法是什么?我不确定是否应该将按钮的功能触发,或者如果我应该像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