jquery中的复选框检查和未选中的事件

时间:2016-06-08 08:31:34

标签: javascript jquery html checkbox

我的复选框列表中有复选框,如下所示:

var bundleObj = groupObject["bundle"];
if (bundleObj.ValueType == JsonValueType.Array)
{
       JsonArray bundle = bundleObj.GetArray();
       foreach (JsonValue groupValue1 in bundle)
       {
           JsonObject groupObject1 = groupValue1.GetObject();
           string bundleName = groupObject1["bundle_file"].GetString();
           string pathFile = groupObject1["path_file"].GetString();
       }
}

我已经像这样在jQuery中创建了一个on click函数,只是为了检查它是否会起反应:

<div class="pop-mission-to">
    <label>
        <input class="check-brand" type="checkbox" name="" value="1" data-id="1">
    </label>
</div>

<div class="pop-mission-to">
    <label>
        <input class="check-brand" type="checkbox" name="" value="2" data-id="2">
    </label>
</div>

然而,当我点击复选框时,没有任何反应。我做错了什么?

编辑,伙计我在$ .Post之后创建此HTML,如下所示:

$('.check-brand').click(function() {
    alert("Checkbox checked");
});

也许是因为HTML是在jquery中调用$ .post之后生成的,这就是为什么它没有触发事件的原因?

1 个答案:

答案 0 :(得分:2)

问题是因为您在加载DOM后动态追加元素,因此您需要使用委托的事件处理程序。另请注意,您应该在复选框上使用change事件,而不是click。试试这个:

$('.check-user').click(function() {
    var $this = $(this);
    var user_id = $this.attr('value');
    var brandContainer = $this.closest('.pop-state').siblings('.pop-brands');

    brandContainer.on('change', '.check-brand', function() {
        alert("Checkbox checked");
    });

    // the rest of your code...
});