请问大家用RequireJS做模块化编程的时候,对下面这种点击事件绑定的函数是怎么处理的?

我目前想到的办法是主动在模块内暴露一个对象到全局变量中,像这样:

但是感觉这种办法不太好,会污染全局变量而且有些违背RequireJS的初衷,但不知道怎么做更好。
求教~
请问大家用RequireJS做模块化编程的时候,对下面这种点击事件绑定的函数是怎么处理的?

我目前想到的办法是主动在模块内暴露一个对象到全局变量中,像这样:

但是感觉这种办法不太好,会污染全局变量而且有些违背RequireJS的初衷,但不知道怎么做更好。
求教~
|
1
尽量不使用 HTML 元素的事件处理程序属性
|
|
5
@loethen 当时的代码已经找不到了,我简单写了个示范,就是像下面这样:
define(function() { var h3 = document.getElementsByTagName('h3')[0]; h3.addEventListener('click', typeClick(h3)); function typeClick(ele) { } }); 这样的话在当前模块里可以执行h3.click(),但是在实际页面中点击h3元素并不能执行typeClick函数。 |
|
7
h3.addEventListener('click', typeClick(h3)); 绑定的方式有错误啊,应该是 h3.addEventListener('click', typeClick);
|
|
9
|
|
10
xy问题
|
|
13
@7anshuai 在执行这一句(
h3.addEventListener('click', typeClick(h3)); )的时候间接触发了typeClick(h3),使我误以为正常执行了h3.click() 哈哈,真是不好意思~ |