我如何dynamic启用/禁用链接与jQuery?

我有一些链接显示在一个页面上。 我想基于页面上的其他事件启用/禁用它们。 有没有办法做到这一点与jQuery?

 $('selector_for_links_to_disable').bind('click', function(e){ e.preventDefault(); }) 

并为了使:

 $('selector_for_links_to_enable').unbind('click') 

你可以做这样的事情:

 $('.links').click(function(e){ if( [some conditions] ){ e.preventDefault(); } }); 

一定要表明他们不再以某种方式工作,否则你的用户会感到困惑,哈哈。

这取决于你的意思是“禁用”。

这会让他们无所作为:

 $("A").click(function() { return false; }); 

你可以做这样的事情:

 <script> $(document).ready(function() { $('input#disableall').live('click', function(){ $('a').attr( 'class', 'disabled' ); alert('All links are disabled.'); }); $('input#enableall').live('click', function(){ $('a').attr( 'class', 'enabled' ); alert('All links are enabled.'); }); $('a.disabled').live('click', function(event){ event.preventDefault(); }); }); </script> <a href='http://www.google.com'>Google<a/> <a href='http://www.yahoo.com'>Yahoo<a/> <a href='http://www.hotmail.com'>Hotmail<a/> <input type='button' id='disableall' value='Disable Links' /> <input type='button' id='enableall' value='Enable Links' /> 
 $(document).delegate('.links', 'click', function () { if ([your condition is true]) { return false; } }) 

委派比处理程序更好,因为你可以在加载dom之前调用它们

当我通过jQuery给button的function,我喜欢这样做:

 indice = ''; $('myLink').live('click',function() { if (indice !== 'value1'){ // your code } indice = 'value1'; return indice; }); 

用这个,你第一次按下de键就可以得到这个function。 现在你只需要设置不同的value1到你的链接再次工作