我有一个带子菜单的主菜单。当我单击子菜单时,我希望首次单击时禁用href,然后启用第二次单击。如果单击“秒菜单1”,然后单击“秒菜单2” - 应禁用“菜单1”。只有连续点击两次才能启用它。
答案 0 :(得分:0)
对于初学者,您必须preventDefault()
,并且只有在先前点击了链接时才允许默认操作。您可以通过添加属性并检查其存在来跟踪它。
var links = document.querySelectorAll('ul a');
for (var i = 0; i < links.length; i++) {
links[i].onclick = handlerGen(i);
}
function handlerGen(index) {
return function clickHandler(event) {
var link = event.target;
if (!link.hasAttribute('clicked')) {
event.preventDefault();
resetClicked(index);
}
};
}
function resetClicked(index) {
for (var i = 0; i < links.length; i++) {
if (i == index) {
links[i].setAttribute('clicked', true);
} else {
links[i].removeAttribute('clicked');
}
}
}
如果您正在使用jquery,可能需要使用.data()
。