0

我有一个链接元素,我在其中捕获 mousedown 事件并阻止事件冒泡,这样页面中的其他元素就不会被选中。但是在 Firefox(3 和 3.5)中,当我使用 DOM 2 事件模型时,它仍然会选择页面中的其他元素。

我已经在 Opera 中对其进行了测试,并且无需选择其他元素即可正常工作。另一个奇怪的问题是,如果我使用 DOM 0 事件模型,它可以正常工作并且不会选择其他元素。这是Firefox中的错误还是我做错了?

这是我用来测试的 2 个事件处理程序

past.addEventListener('mousedown', function (e) {
    e.stopPropagation();
    return false;
}, false);

past.onmousedown = function (e) {
    e.stopPropagation();
    return false;
};
4

1 回答 1

0

你试过e.preventDefault()吗?stopPropagation将停止调用祖先元素的事件处理程序,但这与阻止采取默认操作不同。由于 DOM 规范并没有真正指定鼠标事件和选择应如何根据事件模型进行交互,因此它可能是一个浏览器以一种方式执行它的那些区域之一,另一个浏览器以另一种方式执行它,并且两者都不是“正确”或“错误的”。

于 2009-07-22T08:59:12.230 回答