2017-07-25 54 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