我有以下问题: 让我们在我的html页面中说我有以下元素:
<button onclick="myfunction(id)">Save</button>
并在我的javascript文件中
(function(){
function myfunction(id){
// magic happends
};
})();
在这种情况下它无法正常工作,因为myfunction包含在iife函数中,所以我的问题是:是否有最佳实践可以将JavaScript逻辑保存在包装函数中并且同时可以访问HTML元素?
答案 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
};
})();