我正在一个移动网站上工作,并且在我不想要他们的情况下解雇事件。
为了简单起见,它写的是这样的(在jQuery中):
el.on('touchend', function(ev) {
ev.preventDefault();
// fire an ajax call
};
但是,有时用户在滚动页面时会点击该项目,导致ajax请求被触发(从而改变页面状态)。
我想不出办法(ev.stopPropagation()不起作用),所以我决定观看dragstart和dragend事件。
el.on('dragstart', function() {
el.off('touchend');
});
el.on('dragend', function(ev) {
ev.stopPropagation(); // <-- seems to do nothing
// add back the event above (the function is set to a var)
});
如果我在touchend回调中警告,我得到确认,在我停止拖动后,touchend事件确实发生了火灾。
有没有人知道如何防止任何其他事件被解雇?我希望我只是失明并且遗漏了一些明显的东西。
提前致谢!
答案 0 :(得分:0)
您无法阻止事件触发,您只能阻止该事件的默认行为发生。
如果您担心在touchend事件触发之前页面状态发生变化,您应该更改要检查的功能,然后考虑状态更改。
答案 1 :(得分:0)
我认为在这种情况下你应该使用
event.stopImmediatePropagation();