我无法找到任何有关jQuery中自定义事件实际实现的好资源。就像他们如何模拟事件冒泡等jQuery自定义事件如何正确工作
8
A
回答
7
这样:
// bubbling is internal
trigger: function(event, data, elem /*, bubbling */) {
// Event object or event type
var type = event.type || event,
bubbling = arguments[3];
// Handle a global trigger
if (!elem) {
// Don't bubble custom events when global (to avoid too much overhead)
event.stopPropagation();
// Only trigger if we've ever bound an event for it
if (jQuery.event.global[ type ]) {
jQuery.each(jQuery.cache, function() {
if (this.events && this.events[type]) {
jQuery.event.trigger(event, data, this.handle.elem);
}
});
}
}
// ... snip ...
// Trigger the event, it is assumed that "handle" is a function
var handle = elem.nodeType ?
jQuery.data(elem, "handle") :
(jQuery.data(elem, "__events__") || {}).handle;
if (handle) {
handle.apply(elem, data);
}
var parent = elem.parentNode || elem.ownerDocument;
// ... snip ....
if (!event.isPropagationStopped() && parent) {
jQuery.event.trigger(event, data, parent, true);
} else if (!event.isDefaultPrevented()) {
// ... snip ...
jQuery.event.triggered = true;
target[ targetType ]();
}
}
这是怎么回事这里是如下:
当调用jQuery检查是否全局触发事件($.trigger("event_name");
)。
如果不正在全球触发,和传播尚未停止和所讨论的元件具有父元素(!event.isPropagationStopped() && parent
)然后jQuery的调用手动触发事件的父元素上。
jQuery.event.trigger(event, data, parent, true);
是有相当多的事情 - 看event.js在jQuery的源代码。
1
退房的tutorials
$(document).bind("eventType", ...);
// This is equivalent to the plugin's $.subscribe("eventType", ...);
$(document).trigger("eventType");
// equivalent to plugin's $.publish("eventType");
而且结帐这个SO question
相关问题
- 1. 如何正确触发jQuery UI自定义事件?
- 2. jquery:如何自定义CLICK事件?
- 3. jQuery自定义事件不起作用
- 4. 如何正确提高自定义事件?
- 5. JavaFX如何在使用自定义单元工厂时正确处理事件?
- 6. jquery fullcalendar自定义事件
- 7. jQuery自定义事件
- 8. Managaing jQuery自定义事件
- 9. 自定义jQuery事件
- 10. Backbone.js - 自定义JQuery事件
- 11. jQuery自定义插件 - 如何正确返回结果?
- 12. jQuery的定义自定义事件
- 13. jQuery全局自定义事件和live()似乎不工作
- 14. jQuery的自定义事件不工作没有setTimeout的
- 15. “自定义事件”如何在VB.Net中工作?
- 16. jQuery的自定义插件无法正常工作
- 17. 自定义jQuery小部件在Heroku上无法正常工作
- 18. 自定义jQuery插件不能正常工作
- 19. ASP自定义控件不会触发正确的事件
- 20. ItemTemplate - 工作不正确。自定义外观和绑定
- 21. 如何正确定义jQuery函数
- 22. 自定义事件对于自定义的jQuery插件
- 23. jQuery插件 - 传递自定义事件
- 24. jQuery插件自定义事件
- 25. jQuery插件创建自定义事件
- 26. TYPO3 - 如何自定义扩展正确
- 27. 如何正确添加自定义TableViewCell?
- 28. 如何使用jQuery绑定功能的自定义事件
- 29. 如何绑定到jQuery中的所有自定义事件
- 30. 如何正确添加自定义视图到工具栏?
我认为他不想要API解释,但他们如何实际工作的技术解释。 – ThiefMaster 2011-01-11 16:56:51