我对jQuery及其选择器都很陌生。
我有很多用于切换语言的链接。语言存储在{{1}}变量中,当前语言索引(称为languages
)存储在lang
中。当我点击一个链接时,它会正确更改(在数组中循环),但任何其他链接保持不变。为什么? document
选择器应该选择我的所有链接......
$('.lang')
答案 0 :(得分:2)
这是因为在您的点击功能中您指的是this
,即只有您需要点击的当前链接
$('.lang').click(function() {
// Set link text to the current language and increment counter
$('.lang').text(languages[(($(document).data('lang') + 1) % languages.length)]);
$(document).data('lang', $(document).data('lang') + 1)
});
如本jsfiddle所示
你是正确的$('.lang')
将选择与该班级的所有链接。在您的代码中,它将click函数应用于每个链接处理程序。但是在click上执行的函数需要该标记而不是this
。