2017-12-12 2 views
-2

Ich versuche, ein dynamisches Toggle für ein Dropdown-Menü mit der Schriftart awesome Set erstellen. Hier ist mein html:Toggle-Klasse innerhalb Anker

<div id="contis" class="row"> 
    <div class="container contis"> 
     <div class="minispc"></div> 

     <a href="#service1" data-toggle="collapse"><i class = "fas fa-chevron-right"></i> Service 1</a> 
     <div class="col"> 
     <div class="row"> 
      <div class="col"> 
      <div class="collapse" id = "service1"> 
       <li>Item 1</li> 
       <li>Item 2</li> 
      </div> 
      </div> 
     </div> 
     </div> 

    </div> 
</div> 

und die js Ich habe bisher:

$('contis > a').click(function() { 
    $('i', this).toggleClass('fa-chevron-right fa-chevron-down'); 
}); 

Allerdings, wenn ich es klicken, passiert nichts. Irgendeine Idee warum?

Antwort

0

Das Problem ist mit dem Selektor. Fügen Sie ein #:

$('#contis a').click(function() { 
    $('i', this).toggleClass('fa-chevron-right fa-chevron-down'); 
}); 

Der Selektor Sie ein Tag-Selektor hatte, war, mit dem Namen contis, die <contis> ausgewählt hätte und nichts mit id="contis". Für id Selektor müssen Sie #contis verwenden, die die richtige auswählen wird.

Es gibt auch keinen direkten Nachkommen, also entfernen Sie >.

Snippet

$(function() { 
 
    $('#contis a').click(function() { 
 
    $('i', this).toggleClass('fa-chevron-right fa-chevron-down'); 
 
    }); 
 
});
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="contis" class="row"> 
 
    <div class="container contis"> 
 
    <div class="minispc"></div> 
 
    <a href="#service1" data-toggle="collapse"><i class="fa fa-chevron-right"></i> Service 1</a> 
 
    <div class="col"> 
 
     <div class="row"> 
 
     <div class="col"> 
 
      <div class="collapse" id="service1"> 
 
      <li>Item 1</li> 
 
      <li>Item 2</li> 
 
      </div> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

Bitte ändern Sie Ihre classfas-fa.

+0

OK, also habe ich versucht, dies in einer Geige zu laufen, und es funktioniert gut. Wenn es jedoch innerhalb meiner Seite ausgeführt wird, funktioniert es nicht? –

+0

@ S.L. Können Sie bitte den vollständigen Code posten? –

+0

https://jsfiddle.net/1w725w60/1/ hier gehen Sie –

Verwandte Themen