【问题标题】:How to disable mouseover event from everywhere using javascript/jquery?如何使用 javascript/jquery 从任何地方禁用鼠标悬停事件?
【发布时间】:2016-01-29 03:50:45
【问题描述】:

我正在使用 raphael.js 库,并且该文件包含一个我想停止工作的鼠标悬停事件。谁能帮帮我?

【问题讨论】:

标签: javascript jquery raphael mouseover


【解决方案1】:

你可以使用 CSS:

.element {
    pointer-events: none;
}

或者类似的东西:

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

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

【讨论】:

  • 是否有可能停止特定 js 文件中存在的鼠标悬停事件,因为我有 4 个 js 文件并且它正在阻止所有文件。我只想阻止单个文件的鼠标悬停事件,即 raphael.js
【解决方案2】:

实际上,您可以使用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>

带叠加层:

$("p").mouseover(function() {
    $(this).text("Gotcha!");
});
#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;
}
<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>

背景颜色是故意为红色的——它会帮助你理解这个想法。可以设置为透明,不可见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    相关资源
    最近更新 更多