jQuery 类选择器和单击事件,我错过了啥吗?
Posted
技术标签:
【中文标题】jQuery 类选择器和单击事件,我错过了啥吗?【英文标题】:jQuery class selector and click event, am i missing something?jQuery 类选择器和单击事件,我错过了什么吗? 【发布时间】:2012-01-05 03:27:28 【问题描述】:我对 jQuery 及其选择器很陌生。
我有许多用于切换语言的链接。语言存储在languages
变量中,当前语言索引(称为lang
)存储在document
中。当我单击一个链接时,它会正确更改(循环遍历数组),但任何其他链接保持不变。为什么? $('.lang')
选择器应该选择我所有的链接...
var languages = ['en', 'sl', 'at', 'de'];
$(document).data('lang', 0); // Just for the first page load
$('.lang').text(languages[($(document).data('lang'))])
.attr('href', 'javascript:void(0)'); // Set href and text
$('.lang').click(function()
// Set link text to the current language and increment counter
$(this).text(languages[(($(document).data('lang') + 1) % languages.length)]);
$(document).data('lang', $(document).data('lang') + 1)
);
<a class="lang"></a>
<a class="lang"></a>
【问题讨论】:
【参考方案1】:这是因为在你的点击功能中你引用了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所示
http://jsfiddle.net/WhtqR/
您是正确的,$('.lang')
将选择您与该课程的所有链接。在您的代码中,它将 click 函数应用于每个链接处理程序。但是点击时执行的函数需要那个标签而不是this
。
【讨论】:
以上是关于jQuery 类选择器和单击事件,我错过了啥吗?的主要内容,如果未能解决你的问题,请参考以下文章
用 puppeteer 更改 IP 地址似乎不起作用。我错过了啥吗?