requirejs在代码中设置事件

时间:2013-12-17 02:44:00

标签: javascript html requirejs

我们开始使用typescript,因为它很容易编译成模块,我们也开始使用requirejs。有没有办法直接在html中绑定事件?像

<a href="#" onclick="foo.bar();">
    <img src="foo.png" alt="foo">
</a>

动态设置它通常没有问题

$("foo.selector").click((e) => {
    this.bar(); 
    e.preventDefault();
});

但我们碰巧有2-3页,其中我们有多达数百(thousnds)的表行和最多10个不同的事件/行。只是设置事件需要0.5秒(可能看起来不是很多,但与其他页面部分和东西一起很多)。我已经尝试将其移动到“按需”设置,其中所有行都有mouseover => setup all the events但是效果不好。我没有任何优化想法,只有一个,将evnet绑定移动到html并在呈现代码后准备好它们。无论如何,require块的内部似乎都不受此行为的影响。

有没有办法可以在html中使用它?

1 个答案:

答案 0 :(得分:0)

一般来说,使用像onclick这样的事件处理属性是个不错的主意,人们正在试图摆脱这种方法。

如果您需要动态处理点击并且您不希望(或不能)将事件侦听器直接分配给元素,请考虑使用事件委派。有点像那样

$(document).on('click', "foo.selector", function(event) {
   event.preventDefault();
   console.log("You clicked:", this);
});

基本上在这种情况下,您在document对象上定义一个事件侦听器,它与页面上指定类型(如果有)的项目无关。在定义监听器后,它还将自动处理添加到页面的任何新元素。