2012-02-21 19 views
6

Sto utilizzando jQuery trascinabili e quando lo facciocome impedire a jquery (o jquery ui) di impostare ui-state-disabled su un div?

$(".a-div").draggable({disabled:true})

jQuery è l'impostazione di un ui-state-disabled a quella div. ui-state-disabled è "implementato" in jquery ui css.

Voglio ancora jquery ui css. Preferirei non modificare l'ui-state-disabled così posso usarlo da qualche altra parte.

È possibile impedire a jQuery di impostare lo stato ui disabilitato?

Poiché disabled:true sembra impostare questa classe css, esiste un altro modo per disabilitare un objet trascinabile?

+0

hmm suppongo di non poter fare qualcosa di brutto, sporco se si imposta l'opzione di ritardo su un numero molto elevato;) – ggzone

+0

Sembra che ci sia una segnalazione di bug e correzione per questo: http://bugs.jqueryui.com/ticket/6039 ma non sembra essere stato ancora rilasciato. –

risposta

4

Le classi sono definite nel nucleo jQueryUI, se si vuole veramente cambiare a qualcosa d'altro è possibile modificare il codice (non raccomandato per scopi di manutenibilità e funzionalità) o fare qualcosa di brutto come questo:

$('.ui-state-disabled').removeClass('ui-state-disabled').addClass('yourPreferredClassName'); 
+0

Anche dopo aver fatto questo, questa lezione non sta andando. – Foreever

6

Puoi anche semplicemente eseguire l'override del css nel tuo css locale. Cioè, in linea o in un file che si importa nella tua pagina, aggiungere la regola CSS:

.ui-state-disabled { 
    background-image: none; 
    opacity: 1; 
} 

Dove, in questo caso, ho overridded il valore di opacità.

Ciò può ottenere u nei guai se si vuole realmente utilizzare questa classe altrove, in questo caso, a livello di codice aggiungere/rimuovere la classe per/da elementi selezionati (come suggerito da Alphonso) è probabilmente la soluzione migliore.