假设我使用的是模块模式,例如RequireJS,我将模块A发送到模块B中。
现在我的模块内部我想使用模板引擎生成HTML,但为了解决这个问题,我想说我手动创建了HTML字符串。在那个HTML字符串中,我想创建一个按钮来调用模块“a”提供的函数。
但我显然不能这样做:
define( [ "a.js" ], function( a ) {
var html = "<button onclick='a.myfunction();'>Click me!</button>";
} );
我该怎么做?从JavaScript转换为“HTML-String”,当我无法调用全局函数时,因为它基于所有模块?
define( [ "a.js" ], function( a ) {
var html = "<button onclick='*** HERE I WANT TO CALL A FUNCTION PROVIDED WITH A***'>Click me!</button>";
} );
答案 0 :(得分:1)
您可以通过jQuery:
使用事件委派define(["a"], function (a) {
var html = "<button>Click me!</button>";
$("#buttonContainer").on("click", "button", a.myfunction);
});
其中buttonContainer是页面上已存在的模板容器。