Я пишу что-то подобное следующему коду много. Это в основном переключает элемент на основе некоторого условия.
В следующем искусственном примере условие "Если agree
флажок проверяется и name
поле не пусто".
$("button").click(function() {
if ($("#agree").is(":checked") && $("#name").val() != "" ) {
$("#mydiv").show();
} else {
$("#mydiv").hide();
}
});
Мне жаль, что не было своего рода функции jQuery, которая будет работать как это.
$("button").click(function() {
var condition = $("#agree").is(":checked") && $("#name").val() != "" );
$("#mydiv").toggle(condition);
});
Есть ли там что-то вроде этого? Или есть ли другие пути помимо первого примера, который сделает это в меньше if-else-ish
путь?
Хорошо, я идиот, и мне нужно RTM, прежде чем я буду задавать вопросы.
jQuery.toggle () позволяет сделать это из коробки.
$("button").click(function() {
var condition = $("#agree").is(":checked") && $("#name").val() != "" );
$("#mydiv").toggle(condition);
});
Вы можете написать функцию сами.
function toggleIf(element, condition) {
if (condition) { element.show(); }
else { element.hide(); }
}
Тогда используйте ее так:
toggleIf($("button"), $("#agree").is(":checked") && $("#name").val() != "");
Во-первых, давайте посмотрим, правильно ли я понимаю, что вы хотите сделать ... Вы хотите чтобы посмотреть состояние флажка (установлен или нет) и скрыть или показать второй div в зависимости от статуса этого значения.
Определите этот стиль:
.noDisplay {
display:none;
}
Используйте этот JavaScript:
$("button").click(function() {
$("#mydiv").toggleClass("noDisplay", $("#name").val() == "");
});
Документацию по jQuery по нему можно найти здесь: http://api.jquery.com/toggleClass/