href和tr单击避免重叠

时间:2012-07-30 02:44:10

标签: javascript onclick row href

我有一个表行,当根据所选行单击时,它使用javascript打开某些菜单。我还有一个<a href>标记用于打开链接或重定向到其他地方。

问题是,当我点击<a href>链接时,还会执行表行以打开菜单。

其PHP / Javascript语言。

这是表tr的脚本:

echo "<tr onclick=\"enableDialogs(1)\";>";

对于同一行中的<a>链接:

echo "<td><a href='?folder={$filedir}'>{$list}</a></td>";

问题是,如何避免点击功能两者重叠?

3 个答案:

答案 0 :(得分:2)

创建一个功能,检查菜单是否已打开。

如果它处于打开状态,它将继续重定向或执行您的代码目前执行的任何操作。如果不是,它只是打开它。

基本上,让功能照顾整个事情。

答案 1 :(得分:2)

你有一个典型的事件冒泡案例。由于一些注释建议利用订阅元素的回调,引用第一个参数,并停止从标记冒泡。假设myElement<a>的1个DOM节点。

myElement.addEventListener("click", function(e) {
   e.stopPropagation();
}, false);

当然jQuery回调的工作方式相同

$(myElement).click(function(e) {
    e.stopPropagation();
});

答案 2 :(得分:1)

您需要停止事件传播。

See the DEMO

javascript代码:

function stopPropagation(e) {
    if(!e) var e = window.event;

    if (e.stopPropagation) {
        e.stopPropagation();
    } else {
       e.cancelBubble = true;
       e.returnValue = false;
    }
}

php代码:

echo "<td><a href='?folder={$filedir}' onclick=\"stopPropagation(event)\">{$list}</a></td>";