Показать, если установлен 1 флажок, скрыть, если НЕСКОЛЬКО НЕПРОВЕРЕНО jquery

Привет я хотел бы выяснить, как сделать некоторую логику на дилемму флажка.

У меня есть список для видео с тегами, связанными с ним.

У него есть соответствующий флажок.

Когда этот флажок установлен, список (отображаемый: нет) отображается с помощью jquery.

Теперь, так как каждое видео имеет несколько тегов. Противоположная функция окажется нежелательной, потому что если флажок НЕ установлен, он удалит связанные с ним видео, ВКЛЮЧАЯ видео, которые были показаны другими флажками чекчед. И поэтому, как только показывается div, он сразу же снова скрывается. Вы выполните?

Я предполагаю что-то вроде

если (теги1, теги2, теги3, теги4 не проверены), то (скрыть видео-раздел)

Как я могу сделать это реальностью?

Вот первая половина, остальное может быть до вас!!

$("#squaredThree<? echo $a_number  ?>").change(function() {
    var amount = 0;
    $("#squaredThree<? echo $a_number  ?>:checked").each(function(){

console.log('this has been determined to be ":checked"');

var theonestoshow = document.getElementsByClassName('<? echo $total_tags[$a_number]  ?>');

$(theonestoshow).show( "drop", 300); 

    });
});

Кроме того, на ваш взгляд, это стилизованный интерфейс, чтобы вы могли понять, о чем я даже говорю:

графический интерфейс пользователя

1 ответ

Я нашел ваше объяснение немного запутанным, но способ, которым я выполнил бы ваше требование, заключается в изменении любого флажка, проверяется, отмечен ли какой-либо элемент в группе, и если да, показать видео, если не скрыть его.

Вы в настоящее время используете цикл.each() на $("#squaredThree<? echo $a_number ?>:checked") - это означает, что у вас есть несколько элементов с одинаковым идентификатором? Это не верный HTML, и он не будет работать очень хорошо с вашим JS. Лучше дать всем рассматриваемым флажкам общий класс, потому что тогда вы сможете легко работать с ними как с группой. Скажем, вы изменили их, чтобы все class="checks":

var $cbs = $(".checks").change(function() {
    if ($cbs.is(":checked")){
        $('.<? echo $total_tags[$a_number]  ?>').show( "drop", 300);
    } else {
        $('.<? echo $total_tags[$a_number]  ?>').hide( "drop", 300);
    }
});

Демо: http://jsfiddle.net/DvGrD/

.is(":checked") вернет true, если какой-либо элемент в объекте jQuery отмечен, и false, если ни один не проверен.

(Конечно, если вы не хотите переходить на новый класс, вы все равно можете использовать ту же идею с выбранным селектором (ами).)

Другие вопросы по тегам