【发布时间】:2016-07-15 16:18:59
【问题描述】:
在我的网站上,我有一个浮动联系表单,单击图标后会显示该表单。当鼠标离开联系表格时,它应该关闭。它工作正常。 问题是,在 Mozilla 中,当人们想通过上下文菜单将文本粘贴到联系表单时,表单会关闭 - 我右键单击,想要选择“粘贴”,然后它会关闭。我应该如何更改我的 jQuery 函数以避免这种情况?该问题仅出现在 Mozilla 中。
还有我的 jQuery(可能写的很烂,我刚开始学习):
<script type="text/javascript">
jQuery(document).ready(function($){
$('#order-icon').click(function() {
$('#floating-form').addClass("open");
});
$('#order-icon').mouseover(function() {
$(this).addClass("hover");
});
$('#order-icon').mouseleave(function() {
$(this).removeClass("hover");
});
$('#floating-form').mouseleave(function() {
$(this).removeClass("open");
});
$('#floating-form').contextmenu(function() {
$(this).addClass("open");
});
var body = $( 'body' );
});
</script>
浮动形式结构:
<div id="floating-form">
<div id="order-form">
<!-- contact form -->
</div>
<div id="order-icon">
<!-- icon -->
</div>
</div>
提前谢谢你!
【问题讨论】:
-
针对此有不同的问题:Is there a close event for the browser contextmenu 和 jQuery Hover Menu disappears when right click,但它们都不能可靠地工作。第二个甚至是错误的,
-
主要问题是恕我直言,没有可靠的方法来检查上下文菜单是否已关闭。否则你可以在上下文菜单打开时停止监听 mouseleave 事件,关闭后再次启动监听器并检查鼠标是否仍在
floating-form
标签: jquery mouseleave