Dużo piszę coś podobnego do poniższego kodu. Zasadniczo przełącza element na podstawie pewnych warunków.Czy istnieje coś takiego jak jQuery.toggle (boolean)?
W poniższym przykładzie, warunek jest następujący: "Jeśli pole wyboru agree
jest zaznaczone, a pole name
nie jest puste".
$("button").click(function() {
if ($("#agree").is(":checked") && $("#name").val() != "") {
$("#mydiv").show();
} else {
$("#mydiv").hide();
}
});
Żałuję, że nie było jakiejś funkcji jQuery, która działałaby w ten sposób.
$("button").click(function() {
var condition = $("#agree").is(":checked") && $("#name").val() != "");
$("#mydiv").toggle(condition);
});
Czy jest coś takiego? Czy istnieją inne sposoby oprócz pierwszego przykładu, aby to zrobić w sposób mniejszy niż if-else-ish
?
Czy znasz wersję tej funkcji, która obsługuje łagodzenie/zanikanie/przesuwanie w celu przejścia? Ta szczególna metoda nie wydaje się, i sprawia, że moja strona przeskakuje dość szybko w sposób, który jest bardziej mylący dla użytkowników niż delikatny slajd. –
Tak, to zostało dodane w wersji jQuery 1.4.3. Spójrz na stronę dokumentacji (http://api.jquery.com/toggle/#toggle2), zobaczysz, że istnieją trzy sposoby wywołania toggle(), które chcesz użyć: .toggle ([duration], [ easing], [callback]) – jessegavin
AFAIK nie można przekazać wartości boolowskiej ORAZ czasu trwania/złagodzenia itp. Chciałbym jednak sprostować. – Galaxy