我有一个子菜单,其中所有项目都链接到同一节点,但具有不同的附加参数,例如:
...
<li...><a href = "/?q=page1&filter=10" class = "... active">Item1</a></li>
<li...><a href = "/?q=page1&filter=11" class = "... active">Item2</a></li>
...
在这种情况下,所有项目都有“活动”类,并且没有一个项具有“活动跟踪”类。
有没有办法识别真正的活动链接(用于造型)?
任何建议都将不胜感激!
答案 0 :(得分:0)
您可以通过此模块添加跟踪类:http://drupal.org/project/menutrails
或手动:http://api.drupal.org/api/function/menu_set_active_trail/6
答案 1 :(得分:0)
您也可以使用Javascript设置活动链接的样式,但不可否认它是相当冗长的。这是代码,您只需将样式更改为您想要的样式。
window.onload = kickOff;
var aAll;
function kickOff() {
aAll = document.getElementsByTagName("a");
// disable and change color of active page's link
for (var i=0; i<aAll.length; i++) {
if (window.location.href.split("#")[0] == aAll[i].href) {
aAll[i].onclick = function() {if (this.blur) {this.blur();} return false;}
aAll[i].style.cursor = "text";
aAll[i].style.borderBottom = "none";
aAll[i].style.color = "#FFFFFF";
aAll[i].style.textShadow = "none";
if (aAll[i].className == "site") {
aAll[i].style.color = "#ffffff";
}
else {
aAll[i].style.background = "#a5a9b3 scroll 0pt 100%";
}
}
// fix ie's lack of support for css :focus so tabbers see skip links on focus
if (navigator.appName == "Microsoft Internet Explorer" && aAll[i].className == "skip") {
var restoreColor = aAll[i].style.color;
var restoreBorder = aAll[i].style.borderBottom;
aAll[i].onfocus = function() {this.style.color = "#999999"; this.style.borderBottom = "1px solid #999999";}
aAll[i].onblur = function() {this.style.color = restoreColor; this.style.borderBottom = restoreBorder;}
}
}
// fixes in-page link bug for Internet Explorer
if (navigator.appName == "Microsoft Internet Explorer") {
getElementsByClass("target");
}
}
function getElementsByClass(searchClass,node,tag) {
// fixes in-page link bug for Internet Explorer; first find all destinations (elements with classname "target"):
var classElements = new Array();
if ( node == null ) {
node = document;
}
if ( tag == null ) {
tag = '*';
}
var elAll = node.getElementsByTagName(tag);
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
for (var i = 0, j = 0; i < elAll.length; i++) {
if (pattern.test(elAll[i].className)) {
classElements[j] = elAll[i];
j++;
}
}
// then insert what is an invalid attribute for most elements, with an invalid value to boot:
for (var i=0; i<classElements.length; i++) {
classElements[i].setAttribute("tabIndex",-1)
}
}