2016-09-29 4 views
0

Ich recherchierte ziemlich viel auf onClick Änderungen für Links, aber konnte nicht ganz die Lösung, die ich brauche. Ich habe ein Sidebar-Menü, das mehrere Links enthält. Ich habe eine Standardklasse zu dem Inhalt hinzugefügt, der als Standard angezeigt werden soll. Wenn ich jedoch auf einen anderen Link in der Seitenleiste klicke, möchte ich die "cur" -Klasse des vorherigen Links entfernen, durch nichts ersetzen und dann "cur" auf den neuen Link anwenden. Hier ist mein Code:Hinzufügen von Link-Klasse auf href mit JQUERY

<li data-bind="attr:{'data-key':key, 'data-code':bankcode}, css: memberModel.bankCssClass($data)" data-key="工商银行" data-code="ICBC-NET-B2C" class="bank_2"> 
<a href="javascript:void(0)" class=""></a></li> 

JQuery:

$(function(){ 
    $('a').click(function(){ 
     $('a').removeClass(''); 
     $(this).addClass('cur'); 
    }); 
}); 
+0

, wenn Sie eine Probe zu Ihrem Beitrag hinzufügen wie Sie haben. .. yo Sie können es wie ein brauchbares Beispiel hinzufügen ... in Ihrer Probe gibt es kein Element mit der Klasse "cur". Wenn Sie das in einem Testfall ausführen, würde das nichts bringen und "Helfer" veranlassen zu erraten, ob die Antwort/das Ergebnis stimmt :) (nur als Hinweis) – Dwza

+0

Sie fügen besser auch andere benachbarte li-Elemente hinzu, es wird uns helfen, besser zu verstehen Was kann für dich optimal sein? –

Antwort

1

Try this:

$(function(){ 
    $('a').click(function(){ 
     $('li.blank-2 a').removeClass('cur'); 
     $(this).addClass('cur'); 
    }); 
}); 

Wenn Ihr anderer lis hat auch die Klasse leer-2

0

removeClass (classname) übernimmt den Namen der Klasse, die Sie entfernen möchten. Also versuchen Sie dies:

$('a').removeClass('cur'); 
+0

OP sayed 'Ich möchte, dass die" cur "-Klasse des vorherigen Links entfernt wird. Ihre Quelle wird alle entfernen. Also das ist keine Lösung – Dwza

+0

Ich weise darauf hin, warum der OP-Code überhaupt nicht funktioniert. Der OP sollte in der Lage sein, von hier aus allein weiterzumachen, wenn er den Code bedenkt, den er bereits geschrieben hat. –

+0

Aber offensichtlich weiß er '.parent()' nicht und er wird sich immer noch mit dem gleichen Problem beschäftigen. :) – Dwza

2
$(function(){ 
    $('a').click(function(){ 
     $(this).parent('li').siblings().find('a').removeClass('cur'); 
     $(this).addClass('cur'); 
    }); 
}); 

Hoffe, es funktioniert :)

parent method

siblings method

0

Zuerst yout HTML zu so etwas wie dieses

HTML ändern könnte

<!-- add a parent class (if you dit not do already) You can give it a class like parent --> 
<ul class="parent"> 
    <!-- give you're child also a class (and one of them is active) --> 
    <li><a href="" class="child active">1</a></li> 
    <li><a href="" class="child">2</a></li> 
    <li><a href="" class="child">3</a></li> 
</ul> 

JQuery

$(function(){ 
    // find you're specific group you want to click 
    $('a.child').click(function(event){ 
     // catch and stop the default action 
     event.preventDefault(); 
     // find the specific parent (upstream the dom) (in this case ul with class parent) 
     var $parent = $(this).closest("ul.parent"); 
     // search within your dom structure (downstream) for a child with a class that is active 
     // and remove the class 
     $parent.find("a.active").removeClass("active"); 
     // add the class to the clicked a 
     $(this).addClass('active'); 
    }); 
}); 
0

i herauszufinden, was ist die Lösung. Ich möchte es vielleicht teilen.

HTML:

<ul data-bind="foreach: thirdPayBank" class="bank_list" style="height: 102px;"> 
         <li data-bind="attr:{'data-key':key, 'data-code':bankcode}, css: memberModel.netbankCssClass($data), click: $root.netBankSelectBank" data-key="工商银行" data-code="ICBC" class="bank_2"><a href="javascript:void(0)" class="bank"></a></li> 

         <li data-bind="attr:{'data-key':key, 'data-code':bankcode}, css: memberModel.netbankCssClass($data), click: $root.netBankSelectBank" data-key="农业银行" data-code="ABC" class="bank_3"><a href="javascript:void(0)" class="bank"></a></li> 

CSS:

.bank_list li a.cur { 
      width: 198px; 
      height: 48px; 
      float: left; 
      border: 1px solid #f0bebe; 
      background: url(../images/zijin_icon.png) no-repeat -897px -188px; 
     } 

JQuery:

$(".bank").click(function(){ 
      $(".bank").removeClass('bankcur')  
      $(this).addClass('bankcur') 
    }) 

ERGEBNIS: enter image description here