0
我正在一個菜單上,其中只有活動的a
元素需要有活動類(hyperactive
)。當我點擊其他li元素時,我需要從所有其他a
兄弟姐妹中刪除活動類並將其添加到單擊的li上。從所有兄弟中刪除「類名」並將其添加到jQuery中的活動元素中
這是HTML:
<ul class="main-links">
<li id="ol" class="twist" data-id-name="oli" data-video-flv="europe-1.flv" data-video-m4v="europe-1.m4v">
<a href="#ol" class="hyperactive"><img src="imgs/btn1.jpg" width="237" height="104" style="margin-right:3px;" alt=""></a>
</li>
<li id="fl" class="twist" data-id-name="fl" data-video-flv="latam-2.flv" data-video-m4v="latam-2.m4v">
<a href="#fl"><img src="imgs/btn2.jpg" width="237" height="104" style="margin-right:3px;" alt=""></a>
</li>
<li id="jo" class="twist" data-id-name="jo" data-video-flv="na-1.flv" data-video-m4v="na-1.m4v">
<a href="#jo"><img src="imgs/btn3.jpg" width="237" height="104" style="margin-right:3px;" alt=""></a>
</li>
<li id="ra" class="twist" data-id-name="ra" data-video-flv="sa-1.flv" data-video-m4v="sa-1.m4v">
<a href="#ra"><img src="imgs/btn4.jpg" width="237" height="104" alt=""></a>
</li>
</ul>
這是我通過jQuery的嘗試:
var check_for_main_links = $(this).parent().attr('class');
if (check_for_main_links.indexOf("twist") >= 0) {
console.log ($(this).attr('class'));
var $immediate_parent = $(this).parent();
$immediate_parent.siblings().each(function() {
//$('span').remove();
$('li').removeClass("active");
}
var $elem_name = $p.attr('data-id-name');
var new_position = $("#"+$elem_name).position().top;
//console.log("Element Name " + $elem_name + " position is " + new_position);
top_position = new_position + 40;
}
由於OP想單擊'li',如果'li'在錨點旁邊包含另一個元素(例如'span'),並且當用戶單擊'span'時它不會按預期工作,這將不起作用。 – Felix
但這不是問題的關鍵。他想要如何刪除活動類並添加當前活動類 –