2012-04-08 2 views
0

Zum Beispiel, wenn ich diesen HTML für ein Drop-Down-Menü haben:In jQuery Mobile Wählen Sie Menü, kann ich erzwingen, dass das LI-Element dieselbe Klasse wie das Unterstreichungsoptionselement hat?

<div data-role="fieldcontain"> 
    <label for="cars" class="ui-hidden-accessible">Select Seating Area</label>  
    <select id="cars" data-native-menu="false"> 
     <option class="myclass1" value="volvo">Volvo</option> 
     <option class="myclass2" value="saab">Saab</option> 
     <option class="myclass3" value="mercedes">Mercedes</option> 
     <option class="myclass4" value="audi">Audi</option> 
    </select> 
</div> 
​ 

Ich möchte, dass meine benutzerdefinierten Klassen zu den entsprechenden LI-Elemente des erhaltenen UL-Element hinzugefügt werden. Wie würde man das machen? Bietet jQuery Mobile diese Funktionalität sofort an?

Hier ist eine schnelle JSFiddle: http://jsfiddle.net/avQC6/1/

Antwort

1

Keine diese Funktionalität nicht aus der Box zur Verfügung gestellt. Die Art, dies zu tun, wäre etwas wie das Folgende:

$('[data-option-index=0]').addClass('myclass1'); 
$('[data-option-index=2]').addClass('myclass2'); 

Ich bin sicher, dass Sie einen besseren Weg schreiben könnten, dies zu erreichen. Das ist nur die allgemeine Idee.

+0

Da jQuery mobile den jedes Mal Benutzer UL neu erstellt drückt th e Drop-down, gibt es ein Ereignis, das ich abonnieren könnte, um zu wissen, wann es fertig ist, es zu rendern? –

+0

Bitte ignorieren: Die Lösung bestand darin, das Element mit 'data-role = "none" zu dekorieren und selectmenu() mit benutzerdefinierten Optionen in JS aufzurufen. Alles funktioniert jetzt gut. Vielen Dank! –

+0

Könnten Sie Ihren Code in einer Antwort auf Ihre eigene Frage ausarbeiten oder vielleicht veröffentlichen? Ich bin gespannt, wie Sie dieses Problem gelöst haben. Vielleicht ein Kinderspiel? – codaniel

1

Der Ansatz war ich am Ende unter die folgenden:

  • Disable JQM wählen Sie die Menü Handhabung durch "data-role = 'none'" -Attribut in das Menü
  • manuell aufrufen .selectmenu Hinzufügen() auf die Dropdown-Liste mit einem Rückruf für „create“ Ereignis

this jsfiddle Siehe Beispiel