我不禁要注意,在jQuery的源代码中有两个看似无用的功能(对于v1.9.1,它是第2702行和第2706行):
function returnTrue() { return true; } function returnFalse() { return false; }
解决方法
它是这样使用的:
stopImmediatePropagation: function() { this.isImmediatePropagationStopped = returnTrue; this.stopPropagation(); }
这里是ImmediatePropagationStopped是一种查询方法.使用像这个event.isImmediatePropagationStopped()
event.prototyoe.isImmediatePropagationStopped = function() { return this._isImmediatePropagationStopped }; stopImmediatePropagation: function() { this._isImmediatePropagationStopped = true; //or false at other place. this.stopPropagation(); }
但是你必须引入一个新的实例属性_isImmediatePropagationStopped来存储状态.
通过这个技巧,您可以在这里切断一些实例属性以保持true / false状态,如_isImmediatePropagationStopped,_isDefaultPrevented等.
PS:事件的查询方法,如isDefaultPrevented,isPropagationStopped,isImmediatePropagationStopped在DOM事件级别3中定义.
原文地址:https://www.jb51.cc/js/153935.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。