【问题标题】:jquery kill hover rules when button is clicked单击按钮时jquery杀死悬停规则
【发布时间】:2012-05-02 14:52:48
【问题描述】:

我有 2 个 jquery 事件。

$('#thebutton').click( 

还有.....

$('#thebutton').hover( 

显然,一旦您将鼠标悬停在按钮上,悬停事件就会激活。单击按钮后,我希望触发该事件,以便我可以操作按钮,但也可以终止 mouseoff 事件,以便保留更改。

或者当我即将提交时,点击事件是否应该在悬停内?如果是这样,我猜你仍然需要杀死 mouseoff....

谢谢

【问题讨论】:

  • 悬停时单击是否要“不执行”鼠标离开?
  • “操纵按钮”是什么意思?

标签: jquery click hover


【解决方案1】:

我假设您希望在单击按钮时停止执行mouseleave

也许你可以使用一个简单的布尔值来检查它是否点击了......

var isClicked = false;
$('#thebutton').click(function () {
    isClicked = true;
    //Your code
});

$('#thebutton').hover(function () { //mouseenter
    isClicked = false;
    //Your code
}, function() { //mouseleave
    if (isClicked) return false;
    //Your code
});

【讨论】:

    【解决方案2】:

    这将在您单击按钮时触发“mouseleave”事件...假设您希望执行关联的函数:

    $('#thebutton').click(function(){
       $(this).trigger('mouseleave');
    });
    

    【讨论】:

      【解决方案3】:

      那么你不会使用hover(),你会使用mouseover()

         $('#thebutton').mouseover(function(){
              // do your mouse over here
         });
      
      
         $('#thebutton').click(function(){
             // do your click code here
          });
      

      【讨论】:

      • 这是做什么的? $(this).hover(function(){ return false });。我假设您正在尝试stopImmediatePropagation,但它甚至有什么帮助,也许 mouseleave 中的相同代码可以解决问题,但我会使用一个简单的布尔值来检查 mouseleave 内部。
      猜你喜欢
      • 2015-05-24
      • 1970-01-01
      • 2011-11-30
      • 2011-08-03
      • 1970-01-01
      • 2013-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多