1

为什么这不起作用?当我更改并"$(this).toggleClass('checked');"单击alert('test')标签时,我会看到警报窗口:-/

$(document).ready(function(){
    $("label").click(function(){
        $(this).toggleClass('checked');
    });
});

<input type="radio" name="hours" id="hours1" value="xyz" style="display: none" />
<label for="hours1">10:00</label>
<input type="radio" name="hours" id="hours2" value="xyz" style="display: none" />
<label for="hours2">11:00</label>
4

2 回答 2

1

请参阅此工作代码。希望能满足你的需求

$(document).ready(function(){
    $("label").click(function(){
        if(!$(this).hasClass('checked')){
            $(this).addClass('checked');
        }else{
               $(this).toggleClass('checked');
        }
    });
});

<input type="radio" name="hours" id="hours1" value="xyz" style="display: block" />
<label for="hours1">10:00</label>
<input type="radio" name="hours" id="hours2" value="xyz" style="display: block" />
<label for="hours2">11:00</label>
于 2012-06-03T18:30:21.007 回答
1

假设您想要做的是让当前选中的复选框的标签具有“选中”类:

http://jsfiddle.net/4pQt8/3/

注意:您需要优化$("label")选择器,因为现在它会从文档中的所有标签中删除选中的类。

$(document).ready(function(){
    $("input[name=\"hours\"]").change(function(){
        if ($(this).attr("checked")) {
            $("label").removeClass("checked");
            $("label[for=\"" + $(this).attr("id") + "\"]").addClass("checked");
        }
    });
});

​</p>

于 2012-06-03T18:59:29.060 回答