使用 jQuery,如何禁用当前选项卡上的点击效果?

Posted

技术标签:

【中文标题】使用 jQuery,如何禁用当前选项卡上的点击效果?【英文标题】:Using jQuery, how do I disable the click effect on the current tab? 【发布时间】:2010-09-20 14:50:07 【问题描述】:

我有一个正在播放动画的菜单,但我想在动画播放时禁用点击。

<div></div>
<div></div>
<div></div>

$("div").click(function()  
  $(this).animate(height: "200px", 2000); 
  return false;
);

但是,我想在事件发生时禁用所有按钮,并禁用被点击的 div。

我正在考虑向被点击的 div 添加一个类,并将点击只放在没有该类的 div 上:

$("div").not("clicked").click(function()  
  $(this).animate(height: "200px", 2000).addClass("clicked"); 
  return false;
);

但这似乎不起作用(我认为它在逻辑上起作用)?

任何帮助表示赞赏。

干杯, 史蒂夫

【问题讨论】:

【参考方案1】:
$("div").click(function() 
    if (!$(this).parent().children().is(':animated')) 
        $(this).animate(height: "200px", 2000); 
    
    return false;
);

【讨论】:

哇! 14 个月后解决了我的问题。【参考方案2】:

你可以做这样的事情......

$(function()           
    $("div").click(function()                  

        //check to see if any of the divs are animating
        if ($("div").is(":animated"))  
            alert("busy"); 
            return; 
        

        //whatever your animation is        
        var div = $(this);
        div.slideUp(3000, function() div.slideDown(1000); );

    );

);

只要任何 div 当前没有动画,这将为点击动画。我很可能将所有这些 div 放在一个容器中,而不仅仅是指 div,因为它可能会影响页面上的更多内容,而不仅仅是您的菜单,

【讨论】:

【参考方案3】:

如何在动画发生后禁用单击的

?我已向已单击的 div 添加了一个类,但执行以下操作似乎不起作用:
<div></div>
<div class="active"></div>
<div></div>

$("div").not('active').click(function() 
  if (!$(this).parent().children().is(':animated')) 
    $(this).animate(height: "200px", 2000); 
  
  return false;
);

我怀疑我在 .not 工作方式方面遗漏了一些东西

【讨论】:

以上是关于使用 jQuery,如何禁用当前选项卡上的点击效果?的主要内容,如果未能解决你的问题,请参考以下文章

jquery ui 选项卡上滑效果

在网络选项卡上过滤请求时如何永久禁用 chrome 的警告

在切换到 UITabbarController 中的不同选项卡之前关闭当前选项卡上的推送视图控制器

在另一个选项卡上更改视觉效果

JQuery Mobile 1.4 如何在移动设备上禁用悬停效果

如何维护引导选项卡上的分页?