gpt4 book ai didi

javascript - 设置要与 jquery click 函数一起使用的变量

转载 作者:行者123 更新时间:2023-11-30 07:18:35 24 4
gpt4 key购买 nike

如果这只是被反复问到的另一个问题,我深表歉意。我发现了一些类似的问题,这些例子并没有让我准确地了解我需要去的地方。这类似于 jQuery Closures, Loops and Events .

$('a.highslide').each(function() {
hsGroup = $(this).attr("rel");

if(hsGroup.length > 1){
hsGroup = hsGroup.replace(/\s/g , "-");
}

this.onclick = function() {
return hs.expand(this, { slideshowGroup: hsGroup });

}
});

此代码设置了一个启动 highslide 弹出窗口的 onclick。我在其上方添加了 slideshowGroup 属性和 hsGroup 代码,这些代码提取 Rel 属性的内容以定义每个属性的组。您可能会立即看到的问题是 hsGroup 的内容不是该匿名函数的本地内容。所以在运行时,它的值对于应用到的每个链接总是相同的。我查看了一些闭包示例,但到目前为止未能使它们适用于我的情况。

谢谢,

最佳答案

你只需要一个 var 来为每个链接创建它,就像这样:

$('a.highslide').each(function() {
var hsGroup = $(this).attr("rel");
//^ -- add this

if(hsGroup.length > 1){
hsGroup = hsGroup.replace(/\s/g , "-");
}

this.onclick = function() {
return hs.expand(this, { slideshowGroup: hsGroup });

}
});

没有 var 你有一个全局的 hsGroup 变量,它在每个循环中重复使用,并以相同的最后使用的值结束每次点击。

或者,只在 click 事件发生时进行替换,如下所示:

$('a.highslide').click(function() {
var hsGroup = $(this).attr("rel");
if (hsGroup.length > 1) hsGroup = hsGroup.replace(/\s/g , "-");
return hs.expand(this, { slideshowGroup: hsGroup });
});

关于javascript - 设置要与 jquery click 函数一起使用的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3989847/

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