2016-07-30 8 views
0

Das ist mein JSMehrfachauswahl von Klassen nicht funktioniert

$('.normal-box').click(function(){ 
    //unique row id 
    var id = $(this).data('row-id'); 
    //its index according to the content array 
    var index = $(this).data('index'); 
    //which card does this row belong to 
    var card_name = $(this).data('id'); 
    var card; 
    console.log(id) //el id de noten es de por si "link last_updated" concatenado 
    switch(card_name){ 
     case "noten" : card = Unidos.CardManager.getCard(card_name); break; 
     case "nachricht" : card = Unidos.CardManager.getCard(card_name); break; 
     default : return false; 
    } 
    card.resetPriorityWhenClickedOn(id); 
}); 

Mein HTML

<script id="nachricht_card_row_template" type="text/html"> 
      <div class="normal-box" data-row-id="{{id}}"> 
         <div class="img-box"> 
          {{#if channel.image}} 
          <img src="{{channel.image}}" vspace="3"> 
          {{/if}} 
         </div> 
         <div class="subtitle-box" id="nachrichten-subtitle-box"> 
          <span class="options-title" id="title-text">{{channel.name}}</span> 
         </div> 
         <div class="side-text-box"> 
          <span class="side-text">{{formatDate datetime}}</span> 
         </div> 
         <div class="small-text"> 
          <div class="normal-text"><span class="text-formating">{{text}}</span></div> 
         </div> 
      </div> 
     </script> 

Meine CSS

.normal-box{ /*Container of other tiny boxes*/ 
    height: 70px; 
    border-bottom: 1px solid; 
    border-bottom-color: gainsboro; 
    overflow: hidden; 
    opacity: 0; 
    transition: opacity 0.5s ease 0.3s; 
} 
.normal-box.show{ 
    opacity: 1; 
} 

Wie Sie sehen können, möchte ich die $('.normal-box) wählen, aber ich habe eine andere Funktion, die eine Klasse hinzufügt, die .normal-box show ist ... Mit dem obigen Code kann ich nur die .normal-box el ements arbeitet, nicht die .Normal-Box-Show ... Das ist, was ich mit dem .Normal-Box zeigt clases bedeuten: enter image description here

Ich habe dies bereits versucht:

$('.normal-box, .normal-box show) 
$('.normal-box, .show) 
$('.normal-box.normal-box show) 
$('.normal-box.show) 

Keiner von ihnen arbeiten. Jede mögliche Hilfe würde

+0

Alle Ihre "bereits erprobten" Codebeispiele fehlen. Schlussnotizen – j08691

+0

Nein, ich benutze die console.log (id), um zu erkennen, wie es funktioniert. Es funktioniert nicht mit den normalen Box-Show-Elementen, aber ich bekomme keine Errores –

+0

Das sind vom Schreiben hier, ich versuchte sie mit schließenden Anführungszeichen in th echten Code –

Antwort

2

Normalerweise erkennt, $('.normal-box') wird jedes Element entsprechen, die eine Klasse hat normal-box es sei denn, die Elemente hinzugefügt werden dynamisch, dann müssen Sie Ereignis-Delegation wie folgt verwenden:

$(document).on('click', '.normal-box', function(){ 
    //Your code here 
}); 

Ich hoffe, dass dies helfen wird.

+0

Es funktioniert jetzt, danke! –

+1

Gern geschehen. Wenn dies das Problem löst, markieren Sie es bitte als akzeptiert (damit Leute, die das gleiche Problem in der Zukunft haben, es leicht erkennen können). –

0

Versuchen Sie, diese

$('.normal-box.show'); 
+0

Funktioniert immer noch nicht und normale Box-Elemente funktionieren nicht mehr –

+0

Das wird das Problem nicht lösen, weil dieses '$ ('. Normal-box')' immer noch mit diesem '

' übereinstimmt !!!! –

+0

@SebastianAmpueroMorisaki sind die DIVs dynamisch hinzugefügt? –

Verwandte Themen