3 Stimmen

Klick-Ereignis für alle Links außer den Links innerhalb eines Divs deaktivieren

Ich habe eine Seite mit einigen Links innerhalb eines Divs und einigen außerhalb dieses Divs.

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

Ich muss das Klick-Ereignis für alle Links deaktivieren, außer innerhalb der navigation div.

Wie man es in jquery mit ähnlich zu tun:

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

6voto

Prasad Punkte 57663

Nach einem Versuch funktionierte die folgende Implementierung:

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

Etwaige Mängel in diesem

2voto

K Prime Punkte 5719

Das klingt im Allgemeinen nicht nach einer guten Idee, aber ich würde es folgendermaßen machen:

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

0voto

orip Punkte 69138

Inspiriert durch die Antwort von K Prime:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X