0

下面的代码正在工作

$(function () {
    $('.bigDiv input:checkbox').click(function () {
        alert('working');
    });
});

但这一个不起作用

var checkboxes = $('.bigDiv input:checkbox');
$(function () {
    checkboxes.click(function () {
        alert('working');
    });
});
4

2 回答 2

3

很有可能你必须写下这一行:

var checkboxes = $('.bigDiv input:checkbox');

$(function () {块内,以便在您运行前一行代码之前准备好文档。如果文档未完成加载,则不会有任何复选框可供查找。关键$(function () { /* code here */});是要等到文档加载完成后再运行回调函数中的代码。

你应该可以这样做:

$(function () {
    var checkboxes = $('.bigDiv input:checkbox');
    checkboxes.click(function () {
        alert('working');
    });
});

或者,您可以将此代码放在正文末尾的脚本标记中,甚至不需要准备好的处理程序:

var checkboxes = $('.bigDiv input:checkbox');
checkboxes.click(function () {
    alert('working');
});
于 2013-05-13T05:06:14.107 回答
1

这可能是因为您在<head>创建复选框之前或至少在创建复选框之前有您的代码。以下代码:

$(function () {
});

简称

$(document).ready(function () {
});

当 DOM 准备好使用时(即加载复选框),它附加了一个要触发的函数。您应该在文档就绪函数中包含所有初始化内容,因为您将确定 DOM 已加载。

于 2013-05-13T05:07:30.763 回答