2012-11-15 80 views
1

是否有一种方法可以禁用另一个链接,通过切换功能重新启用它们。禁用其他链接的JQuery切换

这是我的脚本到目前为止。我想在点击“娱乐”时禁用“军事”,但当切换返回时,请重新启用链接。

$("[href='#Entertainment']").click(function() { 
$("#Entertainment").toggle("slow"); 

}); 


$("[href='#Military']").click(function() { 
$("#Military").toggle("slow"); 

}); 

有没有办法做到这一点?

+0

“切换返回”将如何?通过点击sourceElement或再次点击它们或其他? –

+0

我不认为你可以禁用链接...可能会重置href应该有帮助...另外你是什么意思切换返回? –

+0

嘿马特,我有一个解决方案,你... – VIDesignz

回答

1

好吧,我想通了......

这里是一个工作示例FIDDLE

上点击设置你的HTML像这样,给链接的ID

<a id='Elink' href='#Entertainment'>Entertainment</a> 
<a id='Mlink' href='#Military'>Military</a> 
<div id='Entertainment'>EntertainmentContent</div> 
<div id='Military'>Military Content</div> 

然后,在切换发生后,回调函数检查相应的分隔符是否可见,如果是,则禁用另一个链接,如果不可见,则启用另一个链接

$("#Elink").on('click', eclick);  
$("#Mlink").on('click', mclick); 


function mclick() { 

     $("#Military").toggle("slow", function() { 
      if ($("#Military").is(':visible')) { 
       $("#Elink").attr('href', 'javascript:void(0);').off('click'); 
      } else { 
       $("#Elink").attr('href', '#Entertainment').on('click', eclick); 
      } 
     }); 
} 

function eclick() { 
     $("#Entertainment").toggle("slow", function() { 
      if ($("#Entertainment").is(':visible')) { 
       $("#Mlink").attr('href', 'javascript:void(0);').off('click'); 
      } else { 
       $("#Mlink").attr('href', '#Military').on('click', mclick); 
      } 
     }); 
} 
+0

好吧,所以这是一个很好的开始,但是,你认为这是一种同时开放军事和关闭娱乐的方式,反之亦然? –

+0

@MattJameson是的,但你需要禁用链接? – VIDesignz

+0

不,你不会但这是有益的,虽然如此谢谢。 –