2012-02-21 17 views
6

używam jQuery przeciągać i kiedy zrobićjak zapobiec ustawianiu ui-state-disabled na div przy jQuery (lub jquery ui)?

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

jQuery jest ustawienie ui-state-disabled do tego div. ui-state-disabled jest "implementowany" w jquery ui css.

Nadal chcę jquery ui css. Wolałbym nie zmieniać stanu ui-wyłączonego, aby móc go używać gdzie indziej.

Czy można uniemożliwić jquery ustawienie ui-state-disabled?

Od disabled:true wydaje się, że ustawienie tej klasy css, czy istnieje inny sposób na wyłączenie funkcji przeciągania?

+0

hmm nie zgaduję, ale możesz zrobić brzydką, brudną rzecz, jeśli ustawisz opcję opóźnienia na bardzo wysoką liczbę;) – ggzone

+0

Wygląda na to, że istnieje zgłoszenie błędu i napraw to: http://bugs.jqueryui.com/ticket/6039, ale wydaje się, że nie został jeszcze wydany. –

Odpowiedz

4

Klasy te są zdefiniowane w rdzeniu jQueryUI, jeśli naprawdę chcesz go zmienić na coś innego można albo włamać kod (nie zalecane dla celów łatwość konserwacji i funkcjonalności) lub zrobić coś brzydkiego takiego:

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

Nawet po zrobieniu tego klasa nie idzie. – Foreever

6

Możesz także po prostu zastąpić css we własnym, lokalnym css. Oznacza to, że albo inline lub w pliku importowanego do swojej strony, dodaj regułę CSS:

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

Gdzie, w tym przypadku, mam overridded wartość krycia.

Może to spowodować kłopoty, jeśli rzeczywiście chcesz użyć tej klasy w innym miejscu, w takim przypadku programowe dodawanie/usuwanie klasy do/z wybranych elementów (zgodnie z sugestią Alphonso) jest prawdopodobnie najlepszym rozwiązaniem.