我点击链接时尝试激活某些元素。我现在正在使用此代码,当我点击带有类' test'的元素时,我可以添加和删除活动类。我需要的是单击一个链接并对div元素具有相同的行为。
我有:
$('.test').on('click',function(){
$('.test.active').removeClass('active');
$(this).addClass('active');
});

.active{
color: #F00;
}

<div class='test active'>test</div>
<div class='test'>test</div>
<a class='link' href=''>Click me</a>
&#13;
当我单击div时,此代码会添加和删除活动类。如何通过点击链接做同样的事情?
答案 0 :(得分:1)
如果要避免重定向,请添加href="javascript:;"
。
在jQuery下面,代码片段将起作用:
$('.link').on('click', function(){
$(this).toggleClass('active');
})
<强> Working Fiddle 强>
<强>更新强>
突出显示多个divs
$('.link').on('click', function(){
if($('.test.active').next().hasClass('test'))
{
$('.test.active').removeClass('active').next('.test').addClass('active');
}
else
{
$('.test.active').removeClass('active');
$('.test:first').addClass('active');
}
})
<强> Updated Fiddle 强>
答案 1 :(得分:1)
单击链接时,行为和方法将与单击按钮,div或页面的任何其他元素相同。
不同之处在于,<a>
元素会将您重定向到另一个页面(如果它是&#34;相同的&#34;您来自哪里)并且更改不会被取消值得注意的。
您需要使用$("element").addClass("class");
答案 2 :(得分:1)
您的代码应为:
$('.link').on('click', function () {
var $nextActive = $('.test.active').next('.test').length ? $('.test.active').next('.test') : $('.test').first();
$('.test.active').add($nextActive).toggleClass('active');
return false;
});
答案 3 :(得分:0)
根据您的帖子和评论,您希望将链接用作div的类更换器。干得好。编辑!
$('.link').on('click', function(){
$('.test.active').toggleClass('active').next().addClass("active");
});
工作fiddle
答案 4 :(得分:0)
只需删除.active类。 下面的代码正在运行。
$('.test').click(function(){
$('.test').removeClass('active');
$(this).addClass('active');
});
答案 5 :(得分:0)
替换js功能
$('.test').on('click',function(){
$('.test').removeClass('active');
$(this).addClass('active');
});
答案 6 :(得分:0)
你可以这样做。它将在链接点击时添加和删除活动类。
$('.link').on('click', function(){
$('.active').removeClass('active').siblings('.test').addClass('active');
});
&#13;
.active{
color: #F00;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='test active'>test</div>
<div class='test'>test</div>
<a class='link' href='#'>Click me</a>
&#13;
修改强>
这适用于无限div。
JQuery的:
$('.link').on('click', function(){
if($('.active').next().hasClass('test'))
{
$('.active').removeClass('active').next('.test').addClass('active');
}
else
{
$('.active').removeClass('active');
$('.test:first').addClass('active');
}
});