2


我想通过 jQuery 本身而不是手动触发事件。
在这里更好地理解我的问题:

$('.commonCheck').change(function () {
            if ($(".cashierCheck").attr("checked")) {
                $('.cashierInput').fadeIn();
                console.log("________________hr")
            }
            else{
                $('.cashierInput').fadeOut();
                console.log("_______________uncjecked")
            }
}

我的复选框:

<input type="checkbox" name="cashierFilter" id="cashierFilter" class="cashierCheck commonCheck" class="mrL0" />

当我手动选中/取消选中复选框时,会触发更改事件而没有任何问题。但我希望事件在我以某种方式执行时发生:

$('#cashierFilter').prop('checked','true');
4

2 回答 2

2

在 jquery 中使用“is”是最好的解决方案:

$('.commonCheck').change(function () {
    if ($(".cashierCheck").is(":checked")) {
                $('.cashierInput').fadeIn();
                console.log("________________hr")
            }
            else{
                $('.cashierInput').fadeOut();
                console.log("_______________uncjecked")
            }
});

http://jsfiddle.net/PpcLe/

于 2013-10-17T08:04:18.787 回答
2

演示 http://jsfiddle.net/ga9nn/

您可以使用trigger以编程方式触发事件:

$('#cashierFilter').prop('checked', true).trigger('change');

此外,您应该使用is来检查元素的属性,并且可以将选择器缓存在变量中以提高性能:

$('.commonCheck').change(function () {
    var $cashierCheck = $(".cashierCheck");
    if ($cashierCheck.is(":checked")) {
        $cashierCheck.fadeIn();
        console.log("________________hr")
    }
    else {
        $cashierCheck.fadeOut();
        console.log("_______________uncjecked")
    }
}
于 2013-10-17T08:03:13.530 回答