内部.click / .on('click')中的IF语句不起作用

时间:2014-01-08 08:59:44

标签: javascript jquery

我不知道为什么这不起作用.. clickId被赋予值access-toggle-all,当我点击带有该类名的复选框时,所以它没有意义(对我来说)至少)..

$(document).ready(function() {
    $('input:checkbox').click(function (e) {
        var clickId = $(this).attr('class');

        if (clickId == 'access-toggle-all') {
            alert("if");
            $('.access-toggle,.access-group-toggle').prop('checked', this.checked);
        } else {
            alert("else");
        }

        alert(clickId);
    });
});

1 个答案:

答案 0 :(得分:0)

我不知道你的问题是什么,但不是你使用单引号或双引号,除非它们是不一致的开头和结尾引号。

我怀疑这与点击的元素有关,而不仅仅是类access-toggle-all所以这个比较失败了:

if (clickId == 'access-toggle-all') {

使用jquery执行此逻辑的正确方法是使用.is()hasClass()

 $('input:checkbox').click(function (e) {
    if ($(this).is('.access-toggle-all')) {
        alert("if");
        $('.access-toggle,.access-group-toggle').prop('checked', this.checked);
    }
});

 $('input:checkbox').click(function (e) {
    if ($(this).hasClass('access-toggle-all')) {
        alert("if");
        $('.access-toggle,.access-group-toggle').prop('checked', this.checked);
    } 
});