【发布时间】:2016-07-01 23:10:46
【问题描述】:
我用 jquery 制作了一个动画,我发现自己有 15400 行代码。 我有 26 个 div(图像),ID 为:.article1、article2、.article3、.article4、... article26。 当我单击其中一个时,许多翻译将应用于其他翻译。 我想减少代码行数,我尝试了一个 For 循环:
for (var i = 1 ; i<=26 ; i++)
{
$('.article' + i]).click(function(){
-- animations --
}
}
但它似乎不起作用,因为 i 的值将采用循环的最后一个值 (26),因此点击功能仅适用于 id 为 .article26 的 div。
谢谢。
【问题讨论】:
-
您的
-- animations --中是否需要i?你可以使用$(this) -
查看 jQuery not 选择器以选择所有 not this。您还说您正在使用 ID,但所有这些文章都表示为类。这是一个错字吗?这也可能导致问题。
-
我假设
$('.article' + i])在这里只有一个语法错误(注意])。这在你的真实代码中存在吗? -
对,就像@4castle 说的...选择 this 的东西,使用 this... 但是要选择其他的所有东西,使用 不是这个,或者只从这个中删除类。
-
使用像
$('[class^=article]')这样的jQuery按类名获取元素。然后绑定事件$('[class^=article]').click(function() { /* Do something here. */ })。
标签: javascript jquery optimization