Mozilla中的jQuery mouseleave()和上下文菜单问题

时间:2016-07-14 12:59:34

标签: jquery mouseleave

在我的网站上,我有一个浮动的联系表单,在单击图标后显示。当鼠标离开接触形式时,它应该关闭。它工作正常。 问题是,在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>

提前谢谢!

1 个答案:

答案 0 :(得分:0)

支持所有浏览器(包括Firefox):

<html oncontextmenu="menuShow(event)" contextmenu="floating-form">

<script>
function menuShow(e){
 e.preventDefault();
 $("#floating-form").addClass("open");
}
</script>