在Firefox中停止冒泡事件

时间:2015-12-27 15:15:49

标签: javascript firefox events touch preventdefault

我正在尝试处理触摸/鼠标事件。所以,我创建了这段代码:

myObject.addEventListener("touchstart", function(e){
    e.stopPropagation();
    e.preventDefault(); 
    console.log("Touched"); 
    mouseTouchDown(e);
}); 
myObject.addEventListener("mousedown", function(e){
    console.log("Clicked"); 
    mouseTouchDown(e);
}); 
function mouseTouchDown(e){
console.log("Some function.");};

我想停止触摸事件的冒泡,因此之后不会触发点击。它适用于Chrome,但在Firefox上我会进入控制台:

Touched
Clicked

触摸事件后如何停止鼠标点击?

我尝试返回false,但它不起作用。

2 个答案:

答案 0 :(得分:1)

这看起来像浏览器中的错误,您的代码看起来很好。

请参阅:https://bugzilla.mozilla.org/show_bug.cgi?id=977226 你用什么操作系统/版本的Firefox进行测试?

答案 1 :(得分:0)

你是否用相同的元素附加了两个事件?

如果是这种情况,则错误不是因为冒泡发生。如果你想避免鼠标点击事件发生,鼠标点击会发生几个事件,如mousedowntouchstart ..etc.so在鼠标中添加preventDefault()。这将禁用在该元素上发生的默认鼠标单击事件。