2016-09-29 20 views
0

我研究了很多onClick鏈接變化,但無法完全弄清楚我需要的解決方案。我有一個包含多個鏈接的側欄菜單。我有一個默認類添加到我想要作爲默認顯示的內容。但是,當我點擊邊欄中的另一個鏈接時,我希望將前一個鏈接的「cur」類刪除,替換爲空,然後將「cur」應用於新鏈接。這裏是我的代碼:使用jQUERY在href上添加鏈接類

<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

如果添加了一個樣本到您的文章像你這樣。喲你可能應該像添加一個可用的樣本一樣添加它......在你的示例中沒有cur類的元素。因此,在一個測試用例中運行它不會引發任何事情,並導致「幫助者」猜測answere/result是否正確:)(僅僅作爲提示) – Dwza

+0

您最好添加其他相鄰的li元素,它會幫助我們更好地理解什麼是最適合你的。 –

回答

1

試試這個:

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

如果其他LIS也有一流的空白-2

0

removeClass(類名)需要您想要刪除的類的名稱。所以,試試這個:

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

OP說「我想要移除前一個鏈接的」當前「類,您的源將刪除所有內容。所以這不是解決方案 – Dwza

+0

我指出爲什麼OP的代碼根本不工作。根據他已經編寫的代碼判斷,OP應該能夠從這裏繼續。 –

+0

但顯然他不知道'.parent()',他仍然會處理同樣的問題。 :) – Dwza

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

希望它會工作:)

parent method

siblings method

0

首先,你可以YOUT HTML更改爲類似這樣

HTML

<!-- 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

我弄清楚什麼該解決方案。我可能想分享它。

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') 
    }) 

結果: enter image description here