请问大家用RequireJS做模块化编程的时候,对下面这种点击事件绑定的函数是怎么处理的?
我目前想到的办法是主动在模块内暴露一个对象到全局变量中,像这样:
但是感觉这种办法不太好,会污染全局变量而且有些违背RequireJS的初衷,但不知道怎么做更好。
求教~
1
7anshuai 2015-06-08 16:18:25 +08:00 1
尽量不使用 HTML 元素的事件处理程序属性
|
4
7anshuai 2015-06-08 16:37:22 +08:00
@DIYgod 如果 h2#type-all 是动态插入的DOM,在绑定事件函数时,你可以通过事件冒泡绑定到页面已存在的元素,比如 div.type
|
5
DIYgod OP @loethen 当时的代码已经找不到了,我简单写了个示范,就是像下面这样:
define(function() { var h3 = document.getElementsByTagName('h3')[0]; h3.addEventListener('click', typeClick(h3)); function typeClick(ele) { } }); 这样的话在当前模块里可以执行h3.click(),但是在实际页面中点击h3元素并不能执行typeClick函数。 |
7
7anshuai 2015-06-08 17:03:20 +08:00 1
h3.addEventListener('click', typeClick(h3)); 绑定的方式有错误啊,应该是 h3.addEventListener('click', typeClick);
|
9
DIYgod OP |
10
emric 2015-06-08 17:27:46 +08:00 1
xy问题
|
11
DIYgod OP |