如何使用 javascript/jquery 从任何地方禁用鼠标悬停事件?
How to disable mouseover event from everywhere using javascript/jquery?
我正在使用 raphael.js 库,该文件包含一个我想停止工作的鼠标悬停事件。谁能帮帮我?
您可以使用 CSS:
.element {
pointer-events: none;
}
或类似的东西:
$('.element').on('mouseover mouseenter mouseleave mouseup mousedown', function() {
return false
});
我不知道你想阻止那个事件触发什么,请更具体地回答你的问题并提供更多相关信息。
实际上,您可以简单地创建一个叠加层来捕获事件并使用 event.stopPropagation()
防止冒泡。
由于 mouseover
和 mouseout
事件不会从子元素冒泡到父元素,因此它变得更加容易 - 创建一个不可见的覆盖层就足够了。
无覆盖:
$("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>
特意将背景色设为红色 - 这将有助于您理解这个想法。可以设置为透明,不可见。
我正在使用 raphael.js 库,该文件包含一个我想停止工作的鼠标悬停事件。谁能帮帮我?
您可以使用 CSS:
.element {
pointer-events: none;
}
或类似的东西:
$('.element').on('mouseover mouseenter mouseleave mouseup mousedown', function() {
return false
});
我不知道你想阻止那个事件触发什么,请更具体地回答你的问题并提供更多相关信息。
实际上,您可以简单地创建一个叠加层来捕获事件并使用 event.stopPropagation()
防止冒泡。
由于 mouseover
和 mouseout
事件不会从子元素冒泡到父元素,因此它变得更加容易 - 创建一个不可见的覆盖层就足够了。
无覆盖:
$("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>
特意将背景色设为红色 - 这将有助于您理解这个想法。可以设置为透明,不可见。