Javascript 将新函数添加到window.event say';stopPropagationAndPreventDefault';
要在我使用的任何单击处理程序上停止默认操作和事件传播,请执行以下操作:Javascript 将新函数添加到window.event say';stopPropagationAndPreventDefault';,javascript,jquery,Javascript,Jquery,要在我使用的任何单击处理程序上停止默认操作和事件传播,请执行以下操作: function something(e) { if (!e) var e = window.event; e.cancelBubble = true; if (e.stopPropagation) { e.stopPropagation(); e.preventDefault(); } } 我想知道这是否可以优化为: function somethingne
function something(e) {
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) {
e.stopPropagation();
e.preventDefault();
}
}
我想知道这是否可以优化为:
function somethingnew(e) {
e.stopPropagationAndPreventDefault()
}
哪个实习生执行了某件事的逻辑。我不建议这样做,但可以通过修改事件对象的原型来完成。因此,可以在事件实例上直接调用函数
stopPropagationAndPreventDefault
Event.prototype.stopPropagationAndPreventDefault = function(e) {
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) {
e.stopPropagation();
e.preventDefault();
}
};
请参见下面的代码段:
Event.prototype.stopPropagationAndPreventDefault=函数(e){
警报(“调用的函数”);
如果(!e)var e=window.event;
e、 取消气泡=真;
如果(如停止播放){
e、 停止传播();
e、 预防默认值();
}
};
var btn=document.querySelector(“#btn”);
btn.addEventListener(“单击”,clickHandler);
函数clickHandler(e){
e、 StopRopAgationAndPreventDefault();
}
单击我
如果不推荐,可能会显示(也)一个替代方案?对于他们正在尝试做的事情,我只能想到一种方法,即修改原型。你还有其他想法吗?也许是给事件
包装一下?@Julian我不知道你说的是什么意思。你能补充一个答案吗?谢谢。但好奇的是,为什么不推荐呢?