0

假设我正在使用模块模式,例如 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>";

} );
4

1 回答 1

1

您可以通过jQuery使用事件委托:

define(["a"], function (a) {

    var html = "<button>Click me!</button>";

    $("#buttonContainer").on("click", "button", a.myfunction);

});

其中 buttonContainer 是页面上已经存在的模板的容器。

于 2013-02-18T21:39:05.023 回答