让jQuery处理复选框点击事件

Get jQuery to process checkbox click event

本文关键字:事件 复选框 jQuery 处理      更新时间:2023-09-26

我知道这个问题可能会因为重复而被关闭(如果是的话,很抱歉),但在我的特定情况下,功能无法按预期工作可能会有不同的问题,而在其他类似的问题中也是如此。

假设我们有一个标记:

<div>
   <label for="IsRecurring">Is Recurring</label>
</div>
<div>
    <input id="IsRecurring" name="IsRecurring" type="checkbox" value="true">
    <input name="IsRecurring" type="hidden" value="false" />            
</div>
<div id="schedulerTypesList" style="display:none">
    <div>
        <label for="ScheduleTypeId">Schedule</label>
    </div>
    <div class="editor-field">
        <input type="hidden" name="ScheduleTypeId" id="ScheduleTypeId" value="" />
        <ul id="ScheduleTypeIdlist" >
            <li>Once a weel</li>
        </ul>
    </div>
</div>

以及文档中附带的JS。就绪事件:

$(document).ready(function() {
     $('#IsRecurring').click(function () {        
        var thisCheck = $(this);
        if (thischeck.is(':checked'))
            $('#schedulerTypesList').show();
        }
        else {
            $('#schedulerTypesList').hide();
        })
    });

在JSFiddle中演示。

为什么复选框点击事件没有切换div的显示?

几个问题!!

$(document).ready(function() {
    $('#IsRecurring').click(function() {
        var thisCheck = $(this);
        if (thisCheck.is(':checked')) { // added this closing bracket
            $('#schedulerTypesList').show();
        }
        else {
            $('#schedulerTypesList').hide();
        } // added this closing bracket
    });
});

ifthischeck后缺少括号,而不是thisCheck,并添加了正确的右括号。工作演示:http://jsfiddle.net/manseuk/4DqXv/18/