我如何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到你的链接再次工作