如何使用javascript / jquery从任何地方禁用鼠标悬停事件?

时间:2015-10-29 05:52:55

标签: javascript jquery raphael mouseover

我正在使用raphael.js库,此文件包含一个mouseover事件,我想停止工作。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:3)

你可以使用CSS:

.element {
    pointer-events: none;
}

或类似的东西:

$('.element').on('mouseover mouseenter mouseleave mouseup mousedown', function() {
   return false
});

我不知道您希望阻止该事件触发什么,请更具体地说明您的问题并提供更多相关信息。

答案 1 :(得分:0)

实际上,你可以简单地创建一个叠加层来捕捉事件并防止使用event.stopPropagation()冒泡。

由于mouseovermouseout事件不会从子元素冒泡到父元素,因此变得更加容易 - 创建不可见的叠加层就足够了。

没有叠加:



$("p").mouseover(function() {
    $(this).text("Gotcha!");
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>Mouse over me</p>
&#13;
&#13;
&#13;

使用叠加:

&#13;
&#13;
$("p").mouseover(function() {
    $(this).text("Gotcha!");
});
&#13;
#mouseoverDisabler {
position: fixed;
top: 0px;
left: 0px;
height: 100%;
width: 100%;
background-color: rgba(255, 0, 0, 0.15); /* just for demo. make it 0.0 */
z-index: 10000;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="mouseoverDisabler"></div>

<p>Mouse over me</p>
&#13;
&#13;
&#13;

背景颜色有意为红色 - 它可以帮助您理解这个想法。您可以将其设置为透明,但不可见。