-1

我在 jQuery 中有一个问题,在运行下面的代码时,insert 中的值仍然返回 null。我正在运行 Salesforce 的 Exact Target,并且还有一个 HTML 文档和脚本文档,其中还包含下面的代码片段。

var value = "Subscriptions are: "; var insert = null;

for (var i = 0; i < 10; i++) {
    $("#lol").click(function() {
        if($(this).prop("checked") == true) {
            insert = "LOL";
            return insert;
        }
    })
};
value = value + insert;

在这种情况下,我在精确目标中收到的数据给了我“订阅为:null”。该复选框将被选中,不会给我任何东西。我相信这可能是一个范围界定问题?

更新:

$("#lol").click(function() {
        if($(this).prop("checked") == true) {
            console.log("lol");
            insert = "LOL";
        }
    });

会产生同样的错误

4

2 回答 2

0
$("#lol").on('click', function() {
    if ($(this).prop("checked") == true) {
        insert = "LOL";
    }
    value += insert;

    alert(insert); // Use `insert` here
});
  1. ID应该UNIQUE
  2. 不需要for绑定事件
  3. 您不能从event处理程序返回
  4. 在处理程序insert内部使用event
于 2015-06-01T05:31:29.450 回答
0

当然是null,click点击$('#lol')节点会调用里面的函数,不点击就不会执行。

由于代码运行的速度太快了你点击按钮,所以它总是会value = value + insert;在你点击之前先运行$('#lol')

于 2015-06-01T05:32:22.757 回答