Javascript jquery.click(callmethod) $('')。单击(函数(事件){ChangeXYZ(事件);});
上面的问题是我不想要事件,但我需要其他变量Javascript jquery.click(callmethod) $('')。单击(函数(事件){ChangeXYZ(事件);});,javascript,jquery,Javascript,Jquery,上面的问题是我不想要事件,但我需要其他变量 $('<a/>').click(function(event) { ChangeXYZ(event); }); $('')。单击(函数(){ChangeXYZ(var123);}); 但该行的问题是,它在运行时得到var123的值,当我在循环中添加这个值时,总是使用var123的最后一个值。看起来它正在使用var123的引用。如何使它在创建时使用var123的值而不是单击时间。是否有原因不能放置语句staticvar123=var123
$('<a/>').click(function(event) { ChangeXYZ(event); });
$('')。单击(函数(){ChangeXYZ(var123);});
但该行的问题是,它在运行时得到var123的值,当我在循环中添加这个值时,总是使用var123的最后一个值。看起来它正在使用var123的引用。如何使它在创建时使用var123的值而不是单击时间。是否有原因不能放置语句
staticvar123=var123代码>在修改var123之前,将代码更改为:
$('<a/>').click(function() { ChangeXYZ(var123); });
$('')。单击(函数(){ChangeXYZ(staticvar123);});
是否有不能放置语句的原因staticvar123=var123代码>在修改var123之前,将代码更改为:
$('<a/>').click(function() { ChangeXYZ(var123); });
$('')。单击(函数(){ChangeXYZ(staticvar123);});
使用闭包
$('<a/>').click(function() { ChangeXYZ(staticvar123); });
注:未测试,但应能正常工作
编辑:固定拼写使用闭包
$('<a/>').click(function() { ChangeXYZ(staticvar123); });
注:未测试,但应能正常工作
编辑:固定拼写假设您的for循环如下所示:
function (val) {
return function() {
ChangeXYZ(val);
}
}(var123);
for(var var123=0;var123假设for循环如下所示:
function (val) {
return function() {
ChangeXYZ(val);
}
}(var123);
for(var var123=0;var123首先,请记住,如果将循环内的单击事件附加到同一元素(在您的示例中,元素$(“”)
),然后您将对该元素的同一事件进行N次响应。因此,您可能不希望这样,需要将调用移动到。单击退出循环
第二,如果您仍然需要这样的东西,我相信@ SANAND0有一个错误,您应该考虑将参数传递给调用方函数,并在函数中使用这个参数:
for (var var123=0; var123<10; var123++) {
(function() {
$('<a/>').click(function() { ChangeXYZ(var123); });
})();
}
for(var var123=0;var123首先,请记住,如果将循环内的单击事件附加到同一元素(在您的示例中,元素$(“”)
),然后您将对该元素的同一事件进行N次响应。因此,您可能不希望这样,需要将调用移动到。单击退出循环
第二,如果您仍然需要这样的东西,我相信@ SANAND0有一个错误,您应该考虑将参数传递给调用方函数,并在函数中使用这个参数:
for (var var123=0; var123<10; var123++) {
(function() {
$('<a/>').click(function() { ChangeXYZ(var123); });
})();
}
用于(var var123=0;var123 mamu使用的格式将创建锚定标记,而不仅仅是搜索锚定标记。@Charles I删除了不理解您的评论的最后一行。我是否应将其添加回?mamu使用的格式将创建锚定标记,而不仅仅是搜索锚定标记。@Charles I删除了不理解您的com的最后一行我应该把它加进去吗?