2012-04-13 2 views
1

überprüfen Sie bitte einen Blick auf diese Geige: http://jsfiddle.net/mrmartineau/53fkV/embedded/result/jQuery Click-Ereignis/Ereignis Fragen sprudeln, wenn sie versuchen, ein Element zu markieren und eine Checkbox zugleich

Das beabsichtigte Ergebnis ist, dass, wenn ein .poll_option td geklickt wird, der Hintergrund Farbe ändert sich in Pink & das Kontrollkästchen ist aktiviert. Jede Option verschiedene Bugs hat, diese sind:

Option 1: Das Problem, das ich habe ist, dass auf Option 1, wenn ich das Kontrollkästchen klicken Sie selbst, es nicht zu überprüfen, aber alles andere funktioniert gut. Damit meine ich, dass, wenn ich auf das Etikett & die <td> klicke, das Ergebnis korrekt ist. Es scheint, dass das Ereignis nicht richtig sprudelt ..

Option 2: Für diese, habe ich versucht, eine andere Lösung (die .toggle() -Methode entfernt) und versucht, herauszufinden, was Element tatsächlich angeklickt wird (console.log(e.target.nodeName);) und jetzt kann ich auf das Kontrollkästchen klicken, aber nicht auf das Label, sondern das Label lässt das Ereignis nicht funktionieren.

Könnten Sie bitte einen Blick auf meinen Code haben & sehen, wohin ich gehe falsch, weil ich sicher bin, es nicht diese harte ...

+0

für mich funktioniert. =) –

Antwort

1

Vorgeschlagen einfachere Lösung

Prost

sein kann:

$('.poll_option.one td').click(function (e) { 
    $(this).toggleClass('highlight'); 
    $(this).find('input').prop("checked", $(this).hasClass("highlight")); 
    console.log(e.target.nodeName); 

// weird that clicking the label does not naturally propagate 
// the click event to the parent 
}).find("label").click(function() { 
    $(this).closest("td").click();     
}); 

Demo.

+0

das funktioniert einwandfrei, danke für deine Hilfe =) – Zander