【发布时间】:2013-12-04 23:55:51
【问题描述】:
我很喜欢 RequireJS 并最终在 Javascript 中进行了一些模块化/封装,但是在将回调传递给另一个模块时遇到了障碍。
具体来说,我为我的应用程序创建了一个菜单模块。它可以由另一个模块加载,您可以使用该菜单模块中的公开函数从中添加菜单。
现在,这个菜单项可以有处理程序,例如例如,表单提交或点击。此外,回调通常会访问调用模块中私有/内部定义的函数,即使用菜单函数的函数。
我试过了:
- 在将事件传递给菜单函数之前将事件绑定到元素,但这不起作用。
- 将回调函数作为第二个参数传递并绑定到菜单模块中
这些都不起作用。
有什么想法吗?
更详细的一些代码
菜单模块功能
function addMenuItem(jqObj, evtHandler) {
console.log("Adding menu " + jqObj);
jqObj.click(evtHandler);
menuList.append($("<li>").append(jqObj));
}
使用模块在菜单中调用函数
function addSelectionMenuItem() {
satInput = $("<input type=search placeholder='search' />");
menuModule.addMenuItem(satInput, function() {
this.loadCzml(satInput.val());
console.log("Checking execution...");
});
}
谢谢!
【问题讨论】:
标签: javascript jquery callback requirejs