我正在尝试将选定的类从制表符交换到制表符,以显示哪一个是当前的
$("li.selected").idTabs(function(id,list,set){
$("a",set).removeClass("selected")
.filter("[@href='"+id+"']",set).addClass("selected");
for(i in list)
$(list[i]).hide();
$(id).fadeIn();
return false;
});
所以点击我试图删除并加载所选的类没有运气,试过这个
<ul class="idTabs">
<li class="selected"><a href="#request-info">Request more information</a></li>
<li><a href="#test-drive">Request a test drive</a></li>
<li><a href="#make-offer">Make an offer</a></li>
<li><a href="#get-quote">Get a quote</a></li>
</ul>
$('.idTabs li').click(function(){
$('.idTabs li').removeClass('selected');
$(this).addClass('selected');
return false;
});
答案 0 :(得分:2)
Aaron,你的第二个例子看起来应该可行,但由于某种原因只适用于前两个列表项。我为li添加了类,使选择器更具体,现在工作正常。
<ul class="idTabs">
<li class="navTab selected"><a href="#request-info">Request more information</a></li>
<li class="navTab"><a href="#test-drive">Request a test drive</a></li>
<li class="navTab"><a href="#make-offer">Make an offer</a></li>
<li class="navTab"><a href="#get-quote">Get a quote</a></li>
</ul>
$('.navTab').click(function(){
$('.navTab').removeClass('selected');
$(this).addClass('selected');
return false;
});
关于您的评论如下:
每次单击li时都有效...单击锚文本时不起作用,因为单击处理程序未附加到该文本。你应该添加“display:block;”在你的li中你的锚点将点击区域扩展到整个li(你需要从你的li中删除填充,然后填充你的'a'以便整个li可以点击)。然后...将点击处理程序移动到锚点并让它更改父级(li)类。我认为它应该是这样的(我现在无法测试它):
$('.navTab a').click(function(){
$('.navTab').removeClass('selected');
$(this).parent().addClass('selected');
return false;
});
答案 1 :(得分:0)
为所有标签添加类似“标签”的类,然后尝试以下内容:
$('li.tab').click(function(){
$('.tab').removeClass('slected');
$(this).addClass('selected');
return false;
});
答案 2 :(得分:0)
你还没有真正说出问题所在,但我猜你的选择器并不是很正确。您似乎将“set”类作为第二个参数传递,而不是作为选择器字符串的一部分传递。
尝试:
$("a," + set).removeClass("selected")
和
.filter("[@href='"+id+"']" + set)