Domanda

Sto utilizzando YUI 3 per consentire a qualcuno di fare clic su " Seleziona tutto " oppure " Seleziona Nessuno " e quindi fai in modo che la casella di selezione selezioni tutti gli elementi o deselezioni tutti, rispettivamente. Ecco il mio codice:

// This selects all
    Y.on('click',function (e) {
            selectBoxNode.get("options").each(function () {
               this.removeAttribute('selected');
               this.setAttribute('selected','selected');
            });
        }, selectAllNode
    );

// This selects none
   Y.on('click',function (e) {
            selectBoxNode.get("options").each(function () {
               this.setAttribute('selected','false');
               this.removeAttribute('selected');
            });
            selectBoxNode.('selectedIndex',-1);
        }, selectNoneNode
    );

selectAllLink, selectNoneLink e selectBoxNode sono nodi evidenti, correttamente restituiti. Aggiornamento: selectAll funziona, ho dovuto rimuovere manualmente l'attributo 'selezionato' per ciascuno e aggiungerlo nuovamente.

selectNoneLink non funziona: deseleziona solo gli elementi che non erano stati precedentemente selezionati ... anche se l'ispezione DOM mostra che l'attributo selectedIndex è effettivamente cambiato in -1, quindi forse ha bisogno di un aggiornamento?

Qualsiasi aiuto sarebbe apprezzato. Se ciò accade in tutti i framework, sarebbe bello saperlo anche.

Grazie!

È stato utile?

Soluzione

Questo ha funzionato per me.

YUI().use('node', function(Y) {
   Y.get('#unsel').on('click', function(e) {
     Y.get('select').get('options').set('selected',false);
   });
   Y.get('#sel').on('click', function(e) {
     Y.get('select').get('options').set('selected', true );
   });
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top