gpt4 book ai didi

javascript - JQuery .click 不像我期望的那样工作。为什么?

转载 作者:行者123 更新时间:2023-12-01 02:22:20 25 4
gpt4 key购买 nike

为什么这个函数不能在 jquery-mobile 上使用?

当我点击任何元素时,它会触发警报(“单元格编号”+60)

function insertOnClick(){
for (j = 0; j < 6; j++) {
for (i = 1; i < 11; i++) {
n = 10 * j + i;
el = "#num" + n;
$(el).click(function() {
alert("cell nº"+n);
});
}
}
}

最佳答案

正如所写的,n 始终是您分配给该变量的最后一个数字 - 它将是执行单击处理程序时的值,而不是您定义函数的值。

使用闭包

你需要使用闭包来实现你想要的:

function insertOnClick(){
for (j = 0; j < 6; j++) {
for (i = 1; i < 11; i++) {
n = 10 * j + i;

(function(number) {

el = "#num" + number;
$(el).click(function() {
alert("cell nº"+number);
});

}(n));
}
}
}

更好的主意

不过,使用单个处理程序会更好:

$('someselector').click(function(e) {
var number = $(this)[0].id.replace('num', '');
alert("cell nº" + number);
});

关于javascript - JQuery .click 不像我期望的那样工作。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13035281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com