禁用除div内链接之外的所有链接的click事件

时间:2009-11-25 07:07:24

标签: jquery

我有一个页面,在div中有一些链接,在div之外有一些链接。

  <div id="navigation">
     <ul>
       <li>
         <a href="/Home/Index">Home</a></li>
      <li>
         <a href="/Home/contactus">Contact Us</a></li>
    </ul>
   </div>
<a href="/User/SignIn">Sign In</a>......

我需要为navigation div内的所有链接禁用click事件。

如何在jquery中使用类似于:

的方法
//disable Click event for links
    $("a:not([id])").live('click', function(e) {
        e.preventDefault;
        return false;
    });

3 个答案:

答案 0 :(得分:6)

经过尝试,以下实施工作:

 //disable Click event for links except navigation
    $("a:not(#navigation a)").live('click', function(e) {
        e.preventDefault;
        return false;
    });

中的任何缺陷

答案 1 :(得分:2)

一般来说,这听起来不是一个好主意,但这就是我要做的事情:

$('a[href]').live ('click', function (e)
{
    if (!$(this).parents('#navigation').length))
        return false; // same as e.preventDefault() & e.stopPropogation()
});

答案 2 :(得分:0)

受K Prime答案的启发:

$('a')
 .filter(function(){return $(this).parents('#navigation').length == 0})
 .live('click', function(e) {
   return false;
 });