我有一个表行,当根据所选行单击时,它使用javascript打开某些菜单。我还有一个<a href>
标记用于打开链接或重定向到其他地方。
问题是,当我点击<a href>
链接时,还会执行表行以打开菜单。
其PHP / Javascript语言。
这是表tr的脚本:
echo "<tr onclick=\"enableDialogs(1)\";>";
对于同一行中的<a>
链接:
echo "<td><a href='?folder={$filedir}'>{$list}</a></td>";
问题是,如何避免点击功能两者重叠?
答案 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>";