jquery事件:isDefaultPrevented(),isPropagationStopped(),isImmediatePropagationStopped用法

时间:2011-03-14 19:33:42

标签: jquery

函数isDefaultPrevented(),isPropagationStopped()和isImmediatePropagationStopped()是否真的有价值?您使用这些功能的任何情况?

2 个答案:

答案 0 :(得分:3)

如果您拥有自己的事件处理程序所使用的服务层,它们将非常有用。一个很好的例子可能是审计/日志记录层。

答案 1 :(得分:0)

刚刚遇到这个非常古老的问题,但它仍然非常相关。

我有许多使用trigger广播自定义事件的插件,我需要知道是否有任何接收器取消了我的navigate事件:

e.g。 isDefaultPrevented

// Inside a click event
var evt = $.Event('navigate');
var nav = {url: "testurl"};

// Let the item and ancestors know I wish to navigate
$(this).trigger(evt, nav);

// If nothing else says stop the event
if (!evt.isDefaultPrevented()){
    // handler the navigation here
    window.location = nav.url;
}

isPropagationStoppedisImmediatePropagationStopped仅在您需要知道事件是否没有冒泡时才有用。我不能说我找到了需要这些yet的案例。