2010-04-05 5 views
6

Czy ktoś wie, dlaczego .hide("normal") nie działa w jQuery 1.4.2? Czy to błąd, czy został usunięty, czy jestem po prostu zwariowany? Udało mi się to zduplikować przy użyciu kilku różnych scenariuszy. Po prostu spróbuj to:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("button").click(function() { 
      $("div.test").hide("normal"); 
     }); 
    }); 

</script> 
</head> 

<body> 
    <div class="test">Hello this is a test</div> 
    <button>Click</button> 
</body> 
</html> 
+5

Ponieważ nie jest zepsuty, to znaczy, że jesteś szalony. Cholerstwo tych "warunkowych" warunków! : O: P – Matt

+0

@Matt - Nie jestem szalony, mówię ci! :) – karim79

+0

@ everyryone - Przykro mi, nie uwzględniłem * wszystkich * odpowiednich informacji w znacznikach, tak naprawdę nigdy nie podejrzewałem, że jQuery UI może mieć z tym coś wspólnego. – karim79

Odpowiedz

15

Problem jest selektor klasy: .text = class="test"

Zrobiłem tak dobrze ponad 100 razy, z tych samych słów :)

zmienić na: $("div.test").hide("normal"); dla naprawa.


Aktualizacja: Wydaje jQuery UI 1.8 jest kwestia, łamiąc "normal" jako prędkość animacji.

This is from the jQuery UI forums:

Dzięki za wskazanie, że obecnie. Normalny w rzeczywistości nigdy nie był prawidłową opcją prędkości, był mitem z nieważnej dokumentacji (używanej również w podstawowych dokumentach jQuery). Jedynym powodem, dla którego zadziałało, jest to, że nieprawidłowe wartości powracają do domyślnej prędkości.

Więc wydaje się, że przynajmniej ten członek zespołu jQuery UI nie, że jest to łamanie zmiana, ja silnie zgadzam i nadzieję, że ta ulega odwróceniu w następnej aktualizacji.

+1

jesteś nie tylko jednym! :) – confiq

+0

sorry - understand false :) +1 – ahmet2106

+0

@ ahmet2106 - Przepraszam, karim zna jQuery dobrze więc odpowiadałem mu bezpośrednio ... zaktualizowany w przypadku, gdy inni to znajdą :) –

1

Czy "normalna" jest nawet opcją dla prędkości? Myślałem, że jest wolny, szybki, a jedyną opcją jest czas w milisekundach.

http://api.jquery.com/hide/

+0

"normalny" jest obecnie w niektórych przykładach w dokumentacji 'show'. Co więcej, używam go w kilku miejscach w produkcji w ciągu ostatnich dwóch lat. Próbuję tylko dowiedzieć się, czy powinienem po prostu poczekać na naprawę, czy też dokonać koniecznego refaktoryzacji. Stało się to widoczne dopiero, gdy zdecydowałem się na uaktualnienie do najnowszej wersji jQuery (z wersji 1.4.1) i jQuery UI. – karim79

+0

Dlaczego w ogóle używasz "normalnego"? – ScottE

6

Work's for me ... jesteś owijania:

$("button").click(function() { 
    $("div.test").hide("normal"); 
}); 

w $(document).ready() nie jesteś?

+0

Tak, jestem. Nie rozumiem tego. W mojej witrynie jest co najmniej sześć wystąpień, z których żadna nie działa. Jeśli zmienię na 'hide (" fast ")' lub 'hide (" slow ")' to działa dobrze. – karim79

+0

>. Matt

+0

Do tej pory Chrome, Safari i Firefox – karim79

3

Dziękuję za wszystkie odpowiedzi. W moim pytaniu zawarłem to, co uważałem za odpowiedni znacznik. Jednak nieoczekiwanie i raczej niepokojąco, jest to włączenie najnowszego interfejsu jQuery (1.8.0), który łamie "normalny". Uruchom poniżej, to nie zadziała. Skomentuj włączenie jQuery UI, a oto i zadziała, zadziała!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("button").click(function() { 
      $("div.test").hide("normal"); 
     }); 
    }); 

</script> 
</head> 

<body> 
    <div class="test">Hello this is a test</div> 
    <button>Click</button> 
</body> 
</html> 
+0

więc UI nadpisuje .hide? Czyli to błąd Jquery'ego? Zgłosiłeś to? – confiq

+0

Zaraz. To prawie spowodowało, że przerwałam produkcję :( – karim79

+0

@ karim79 - Jest kilka otwartych biletów na ten temat, na które nie udzielono jeszcze odpowiedzi: http://dev.jqueryui.com/ticket/5456 –

Powiązane problemy