Bewertungssystem: Safari/Chrome/Firefox OK - IE streikt!

sartorial

Grünschnabel
Hallo zusammen!

Ich habe auf meiner Webseite einen kleinen Blog mit PHP erstellt. Für jeden Artikel soll abgestimmt werden können: Daumen hoch/Daumen runter. Dies funktioniert soweit sehr gut in den meisten Browser. Sogar Smartphone-Browser können das handhaben. Nur streikt leider der IE. Dort wird leider nur die Voting-Funktion deaktiviert, wenn der Benutzer schonmal gevotet hat. Beim Klick auf eine Option geschieht nicht. Keine Übermittlung und keine Änderung der Anzeige.

Das Bewertungssystem funktioniert mit zwei Radio-Boxen, welche ich ausblende und über den Label-Tag anspreche. Um Spam zu verhindern, speichere ich die IP-Adresse für einige Zeit. Per JS und jQuery wird die Auswahl dann an set-vote.php weitergeleitet.

Vielen Dank für eure Bemühungen & Grüsse!

Hier der Code (abgespeckt, Daumen runter analog zu Daumen hoch):

Code:
<script type="text/javascript">
$(document).ready( function(){
	var check_ip = '<?php echo $check_ip; ?>';

	if(check_ip) { $("#thumbs-down-<?php echo $article_id; ?> label").toggleClass("disabled"); }

	if(!check_ip) {
		$("#input-thumbs-up-<?php echo $article_id; ?>").click( function(){
			$("#input-thumbs-up-<?php echo $article_id; ?>").attr("disabled", true);
		
			$("#thumbs-up-<?php echo $article_id; ?> label").toggleClass("active");
		
			var new_count = parseFloat($("#thumbs-up-<?php echo $article_id; ?> span.count-thumbs-up").text()) + 1;
			$.post("/set-vote.php", { id: "<?php echo $article_id; ?>", action: "1" }, function(data){ var result = data;
				if(result == "Vote 1 gespeichert") { $("#thumbs-up-<?php echo $article_id; ?> span.count-thumbs-up").html(new_count); }
				else { $("#thumbs-up-<?php echo $article_id; ?> span.count-thumbs-up").html("Error"); }
			}); // $.post("/set-vote.php", {...}, function(data){
		}); // $("#input-thumbs-up-<?php echo $article_id; ?>").click( function(){
	} // if(!check_ip)
}); // $(document).ready( function(){
</script>

<span id="thumbs-up-<?php echo $article_id; ?>">
	<input type="radio" name="rating" id="input-thumbs-up-<?php echo $article_id; ?>" value="1">
	<label for="input-thumbs-up-<?php echo $article_id; ?>" class="label-thumbs-up">
	(<span class="count-thumbs-up"><?php echo $article_vote1; ?></span>)</label>
</span>
 
Hab's nach etlichen Stunden endlich herausgefunden. Der Internet Explorer registrierte nicht den Klick auf die Radiobox, sondern auf das Label. So funktioniert es nun in allen Browsern.

Code:
Falsch:
$("#input-thumbs-up-<?php echo $article_id; ?>").click( function() { ...

Richtig:
$("#thumbs-up-<?php echo $article_id; ?> label").click( function() { ...

Hoffe, ich konnte jemanden mit meiner Lösung helfen :-)
 
Zurück