了解JavaScript自定义事件侦听器

时间:2012-10-11 15:22:55

标签: javascript javascript-events jquery

我一直在做自定义事件的研究(谷歌),但我似乎找不到我的问题的答案。

我的问题如下:在this example中,我div内有div我正在滑动,并希望制作一个自定义事件,附加到所有小孩div所以当孩子div的偏移量达到一定范围时,div上的自定义监听器就会执行。

所以真正的问题是:我能够在与onchangeclickonmouseup等相同的级别上制作真正的自定义事件监听器。这将听取我的意思希望他们听吗?

2 个答案:

答案 0 :(得分:1)

我看到你正在使用jQuery。使用jQuery定义自定义事件非常容易。我使用这样的模式:

// Constructor
function Colorbar() {
    this.events = $({});
    // (Whatever else is in the class)
}
colorbar = new Colorbar();

然后,您可以收听任何名称的事件:

colorbar.events.on("currentcolorchanged", function(e, cb, ncolor) {
    helper.doColorChanged(ncolor);
});

触发它:

this.events.triggerHandler("currentcolorchanged", [this, ncolor]);

如果您正在使用DOM对象,只需缓存DOM对象的jQuery:

var $ele = $("#myElement");
$ele.on("myCustomEvent", function(e) {
    // Event handler
});
$ele.triggerHandler("myCustomEvent");

答案 1 :(得分:0)

是的,你可以制作真正的自定义事件,就像onchange一样点击onmouseup等,但是你必须根据现有的事件或方法自己编写监听器代码。

在这种情况下,您需要检查移动事件中的偏移值,当它达到该目标值时,触发自定义事件。