2016-03-30 4 views
0

Ich kopiere/füge diesen Code Formular eine andere Seite auf meiner Website. Auf der ersten Seite funktioniert alles gut, irgendwie geht es nicht auf der zweiten Seite ...Geschwister.Removeclass funktioniert nicht auf Bild

Ich versuche eine benutzerdefinierte Radio-Button-Funktion zu erstellen. Die Seite zeigt Bilder (geladen von meiner Datenbank mit mysqli_fetch_array). Der Benutzer kann auf diese Bilder klicken. Sobald der Benutzer auf ein Bild klickt, möchte ich, dass JavaScript eine andere Klasse auf dieses Bild anwendet. Wenn der Benutzer auf ein anderes Bild klickt, möchte ich die Klasse des ersten Bildes wiederherstellen und die Klasse auf das zuletzt angeklickte Bild anwenden.

Was ich habe:

Script

$(window).load(function(){ 
    $('.bedragbol').click(function() { 
     var bedragid = $(this).data("bedragid"); 
     $(this).addClass('bedragbol_select').siblings().removeClass('bedragbol_select'); 
     document.getElementById("kosten").value = bedragid; 
    }); 
}); 

PHP

<table width="100%"> 
<? while($rows_bedrag=mysqli_fetch_array($sql_bedrag,MYSQLI_ASSOC)){ ?> 
<tr> 
<td class="img_programmaker_dag"> 
<img src="../images/<? echo $rows_bedrag['url']; ?>.png" data-bedragid="<? echo $rows_bedrag['id']; ?>" class="bedragbol"> 
</td> 
<td> 
<font class="txt_programmaker_dag"> 
<? echo $rows_bedrag['omschrijving']; ?> 
</font> 
</td> 
</tr> 
<? } ?> 
</table> 
<br><br> 
<input type="text" id="kosten" name="kosten"> 

Ich habe das Eingabefeld hinzugefügt, um zu sehen, ob die Funktion aktiviert ist. Der Wert wird jedes Mal aktualisiert, wenn ich auf das Bild klicke. Das funktioniert gut. Nur der CSS-Teil funktioniert nicht wie es sollte. Momentan wendet es eine Klasse an, wenn es angeklickt wird, es löscht nicht nur alle Geschwister, wenn auf ein anderes Bild geklickt wird. Es behält die ausgewählte Klasse bei. Wenn ich also auf alle Bilder klicke, behalten alle Bilder ihre ausgewählte Klasse.

Was fehlt mir? Was muss ich anpassen, um die Klasse für alle Geschwister außer demjenigen zu entfernen, auf den geklickt wurde?

Antwort

0

versuchen diesen Code, wenn Sie .bedragbol Klasse in jedem anderen Element nicht verwenden versuchen

Ansonsten dieses

$('.bedragbol').click(function() { 
    var bedragid = $(this).data("bedragid"); 
    $(this).siblings().removeClass('bedragbol_select'); 
    $(this).addClass('bedragbol_select') 
    document.getElementById("kosten").value = bedragid; 
}); 
+0

, dass die Funktion schafft, die ich haben möchte. Dennoch verwende ich die .fragol-Klasse in einem anderen Element. Ich denke, ich muss dafür einen Workaround schaffen. –

Verwandte Themen