2011-01-14 9 views
2

Ich muss zählen, wie viele Tasten mit der Option jqueryui checkbox button - .buttonset() umgeschaltet werden. Dies muss geschehen, wenn eine Schaltfläche umgeschaltet wird.Wie man Schalter in jqueryui nach einem Klick-Ereignis zählt

Ich habe den Beschriftungen eine eindeutige Klasse hinzugefügt, bevor ich die Schaltflächengruppe anwendete und ein Klickereignis darauf gesetzt habe.

Es feuert gut, aber es feuert, bevor die jqueryui den Klick verarbeitet hat, so dass das Ergebnis veraltet ist. Wie kann ich das Click-Ereignis anwenden, nachdem jqueryui seine Aufgabe erledigt hat?

$(".button-set").click(function(){ 
    var selected = $("#offer_list_4 label[aria-pressed=true]").length; // out of date 
}); 
+0

Gibt es eine Chance auf detailliertere Markups, eine bessere Erklärung dessen, was der Benutzer auf dem Bildschirm sieht und was erwartet wird, wenn auf jedes Element geklickt wird? – belugabob

+0

Ich müsste eine Demo schreiben, da der echte Code komplexer ist. Das Problem ist jedoch kein Bug, sondern konzeptionell. jqueryui-Schaltflächen verfügen nicht über öffentliche Klickereignisse. Daher weiß ich nicht, wie ich meinen eigenen Klick-Ereignishandler hinzufügen soll, der nach dem jqueryui-Ereignis ausgelöst wird. – SystemicPlural

Antwort

1

Ein besserer Weg, dies zu erreichen, ist eine Ereignisbehandlungsroutine zum change Ereignis der Eingänge binden sich (dies noch einmal ausgelöst wird, obwohl jQueryUI einige Tricks mit den Etiketten tut). Zum Beispiel:

$("#offer_list_4 input:checkbox").bind("change", function() { 
    var selected = $("#format > input:checkbox:checked").length; 
}); 

Schauen Sie sich ein funktionierendes Beispiel hier: http://jsfiddle.net/andrewwhitaker/TGR68/

nutzt die :checked selector und der :checkbox selector.

Verwandte Themen