最后我按照javascript实现了这个..
function extractPageName(hrefString)
{
var arr = hrefString.split('/');
return (arr.length<2) ? hrefString : arr[arr.length-2].toLowerCase() + arr[arr.length-1].toLowerCase();
}
function setActiveMenu(arr, crtPage)
{
for (var i=0; i<arr.length; i++)
{
if(extractPageName(arr[i].href) == crtPage)
{
if (arr[i].parentNode.tagName != "DIV")
{
arr[i].className = "selected";
arr[i].parentNode.className = "selected";
}
}
}
}
function setPage()
{
hrefString = document.location.href ? document.location.href : document.location;
if (document.getElementById("but_a")!=null)
setActiveMenu(document.getElementById("but_a").getElementsByTagName("a"), extractPageName(hrefString));
}
如果我点击ul而不点击链接..它工作..当我点击链接。它一直有效,直到页面加载。在页面加载之后,ul back groud默认类没有“选中”类......对于tis来说是新的...我很难挣扎......需要帮助.. ??
我在这里添加了一个jdFiddle示例:
答案 0 :(得分:3)
$(document).ready(function() {
$("a.button").click(function () {
$(this).toggleClass("selected");
});
});
你那里有太多的javascript。
你发布的小提琴后。 Here is a working fiddle. 请注意,您有大量格式错误的HTML。您不能在列表项之间放置div。您不能在具有相同ID的页面上拥有多个对象(而是使用类)。
答案 1 :(得分:0)
点击锚点之后,页面将导航到锚点href
属性上设置的网址,因此无论您执行的javascript操作在页面加载后都会丢失。
如果您想突出显示所选链接,您可以发送链接ID或一些标识符以及网址,然后在页面加载时检查它并设置选择的相应链接。
顺便说一句toggleClass
在匹配元素集中的每个元素中添加或删除一个或多个类,具体取决于类的存在或switch参数的值。