在连续第二次单击时禁用href



我有一个带子菜单的主菜单。当我单击子菜单时,我希望在第一次单击时禁用href,然后在第二次单击时启用href。如果我单击"秒菜单1",然后单击"秒"菜单2-应禁用"秒菜单"1。只有在连续单击两次时才应启用它。

  • 辅助菜单1
  • 辅助菜单2

对于初学者,您必须使用preventDefault(),并且只有在之前单击过链接的情况下才允许默认操作。您可以通过添加属性并检查其是否存在来跟踪它。

http://jsfiddle.net/f2ww0dfv/

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()

最新更新