我目前正在嘗試製作一個導航菜單,其中將活動類應用於錨點並使用與當前網址匹配的hrefs,因此我可以設置樣式以使其從菜單的其餘部分脫穎而出的方式錨定。使用jQuery進行活動導航 - 無法將默認類應用於定位
這是我的加價:
<div id="sidebar">
<h2>Navigation menu</h2>
<h2 class="subnav"><a href="menu1/menu_item1">Menu item 1</a></h2>
<h2 class="subnav"><a href="menu1/menu_item2">Menu item 2</a></h2>
<h2 class="subnav"><a href="menu1/menu_item3">Menu item 3</a></h2>
<h2 class="subnav"><a href="menu1/menu_item4">Menu item 4</a></h2>
<h2 class="subnav"><a href="menu1/menu_item5">Menu item 5</a></h2>
</div>
這是jQuery的:
jQuery(function($) {
// get the current url
var path = location.pathname.substring(1);
// defining the top subnav anchor
var $top_item = $('#sidebar h2:nth-child(2) a');
// defining all subnav anchors
var $all_items = $('#sidebar h2.subnav a');
// defining the anchors with a href that matches the current url
var $selected_item = $('#sidebar h2 a[@href$="' + path + '"]');
// setting the selected menu item'class as active
$selected_item.addClass('active');
// THIS IS WHERE I THINK THE ERROR IS
// if none of the h2.subnav's has a url that matches
// the current location then assume that it's the top one that's active:
if ($all_items("href") !== path) $top_item.addClass('active');
});
我申請主動級與jQuery,它工作得很好,只要有一個匹配錨點href和位置url之間。如果url不匹配任何錨點,我希望將active-class應用到$ top_item。我的jQuery的那部分不起作用。
我看不到錯誤是什麼,但是我又是一個Javascipt/jQuery n00b。任何幫助,將不勝感激。
$ all_items是一個jQuery對象,裏面有一堆匹配的鏈接 - 如果你想檢查每個鏈接的href,你需要使用類似.each()的東西來循環。例如: $ all_items.each(function(){alert($(this).attr(「href」));}); – 2008-11-19 20:27:26