0

嗨,我想弄清楚如何对复选框困境做一些逻辑。

我有一个带有相关标签的视频列表。

它有一个对应的复选框。

当复选框被选中时,使用 jquery 显示列表(显示:无)。

现在,因为每个视频都有多个标签。相反的功能将被证明是不可取的,因为如果未选中该框,它将删除其相关视频,包括碰巧已被其他已选中标签框显示的视频。因此,一旦显示 div,它就会立即再次隐藏。你跟着?

我正在设想类似的东西

if (tag1 AND tag2 AND tag3 AND tag4 未选中) then (隐藏视频 div)

有什么办法可以让这成为现实?

这是前半部分,其余的可能取决于您!

$("#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); 

    });
});

另外供您考虑的是样式界面,因此您可以了解我在说什么:

桂

4

1 回答 1

0

我发现您的解释有点令人困惑,但是我实现您的要求的方式是更改任何复选框测试是否选中了组中的任何内容,如果是,则显示视频,如果不隐藏它。

您当前正在使用 .each() 循环$("#squaredThree<? echo $a_number ?>:checked")- 这是否意味着您有多个具有相同 ID 的元素?那不是有效的 html,并且不能很好地与您的 JS 配合使用。最好给所有有问题的复选框一个通用的类,因为这样您就可以轻松地将它们作为一个组来使用。假设您将它们更改为 all have 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")如果 jQuery 对象中的任何元素被选中,则返回 true,如果没有选中则返回 false。

(当然,如果您不想更改以引入一个类,您仍然可以对您选择的选择器使用相同的想法。)

于 2013-05-15T21:35:38.343 回答