Jquery 如何在单击事件时更改类
我试图将CSS类更改为click事件中的元素,但看不出在我的示例中必须使用哪个选择器。请看,我有一个包含一些DD的DL,第一个DD有class=“active”,当我选择任何其他DD时,我需要删除该类,并将该类指定给选择的DD,明白吗?举个例子:Jquery 如何在单击事件时更改类,jquery,jquery-plugins,jquery-selectors,Jquery,Jquery Plugins,Jquery Selectors,我试图将CSS类更改为click事件中的元素,但看不出在我的示例中必须使用哪个选择器。请看,我有一个包含一些DD的DL,第一个DD有class=“active”,当我选择任何其他DD时,我需要删除该类,并将该类指定给选择的DD,明白吗?举个例子: <dl> <dd class="active">DD1</dd> <dd>DD2</dd> <dd>DD3</dd> </dl> DD1
<dl>
<dd class="active">DD1</dd>
<dd>DD2</dd>
<dd>DD3</dd>
</dl>
DD1
DD2
DD3
如果我选择DD2,则class=“active”应该从DD1消失,并移动到DD2,依此类推。我认为在使用中:eq()但尽管不起作用。有什么建议或帮助吗
编辑:样品准备好了!!
转到并以demo/demo123的身份登录,然后转到“Directorio”,您将看到过滤器和字母“A”、“B”等旁边,因为您可以看到A是默认的,并且具有活动类,但选择“B”或任何其他选项并查看发生了什么,这就是我之前提到的
干杯,谢谢
$('dd').on('click', function() {
$(this).addClass('active').siblings().removeClass('active');
});
此JavaScript会在单击时更改链接,但在您的场景中不需要这样做:
$("dd").click(function(){
$("dd").removeClass("active");
$(this).addClass("active");
});
你应该这样做:
$(document).ready(function(){
var letter = window.location.pathname.slice(-1);
$("dd").removeClass("active");
$("dl.sub-nav dd a:contains("+letter+")").parent().addClass("active");
});
这仍然很有问题,最好将类设置为服务器端脚本中当前选定的字母。此JavaScript会在单击时更改链接,但在您的场景中不需要这样做:
$("dd").click(function(){
$("dd").removeClass("active");
$(this).addClass("active");
});
你应该这样做:
$(document).ready(function(){
var letter = window.location.pathname.slice(-1);
$("dd").removeClass("active");
$("dl.sub-nav dd a:contains("+letter+")").parent().addClass("active");
});
它仍然很粗糙,最好将类设置为服务器端脚本中当前选定的字母。粗略的研究将为此提供大量资源。你找过了吗?查看jQuery的
on()
和toggleClass()
方法。当然,我在这里询问之前做过研究,但无法使我的代码正常工作,因为我请求帮助@utkanosurory research将为此提供大量资源。你找过了吗?查看jQuery的on()
和toggleClass()
方法。当然,我在这里询问之前做过研究,但无法让我的代码正常工作,因为我请求帮助@Utkanosit正常工作,但是暂时的,因为活动类返回到第一个元素,这意味着DD1,其他代码也会出现同样的情况,我不理解。如果单击活动元素本身,是否要删除该类?否,我不想从默认元素中删除该类,该元素是第一个DD1元素,并指向单击的元素,表示DD2或DD3,甚至DD1,如果是这样的情况,现在我知道发生了什么。单击后,页面将完全重新加载,JavaScript所做的更改将不再适用。我将把我的答案编辑成对你有用的东西。它起作用,但是暂时的,因为活动类返回到第一个元素,这意味着DD1,其他代码也会发生同样的情况,我不理解。如果单击活动元素本身,是否要删除该类?否,我不想从默认元素中删除该类,该元素是第一个DD1元素,并指向单击的元素,表示DD2或DD3,甚至DD1,如果是这样的情况,现在我知道发生了什么。单击后,页面将完全重新加载,JavaScript所做的更改将不再适用。我将把我的答案编辑成对你有用的东西。这是非常罕见的,因为你的代码可以在JSFIDLE上工作,而我的代码不能,我只是复制粘贴其他东西!我会将文件上传到某个地方,并在几分钟后在这里留下链接。这是非常罕见的,因为您的代码在JSFIDLE上工作,而我的代码不工作,我只是复制并粘贴其他内容!我会把文件上传到某个地方,几分钟后在这里留下链接