html元素

时间:2015-06-22 22:35:33

标签: javascript html events iife

我有以下问题: 让我们在我的html页面中说我有以下元素:

<button onclick="myfunction(id)">Save</button>

并在我的javascript文件中

(function(){

   function myfunction(id){
     // magic happends
   };

})();

在这种情况下它无法正常工作,因为myfunction包含在iife函数中,所以我的问题是:是否有最佳实践可以将JavaScript逻辑保存在包装函数中并且同时可以访问HTML元素?

1 个答案:

答案 0 :(得分:2)

  

是否有最佳实践可以将JavaScript逻辑保存在包装函数中,同时可以访问HTML元素?

根据应用程序的结构,最好的方法是不使用内联事件处理程序,而是使用DOM API来绑定处理程序:

(function(){

   function myfunction(id){
     // magic happends
   };

   button.addEventListener('click', myfunction);
})();

More information about event handling.

如果那是不可能的,并且你真的需要使用内联事件处理程序,那么你总是可以使函数成为全局函数:

(function(){

   window.myfunction = function myfunction(id){
     // magic happends
   };

})();