Javascript 如何单击具有click事件的元素下的按钮

Javascript 如何单击具有click事件的元素下的按钮,javascript,html,css,Javascript,Html,Css,我有一个html表格。我在该表的每一行上都有一个click事件。我每行有4个项目,最后一个项目在下拉列表中。我希望在单击下拉项时防止行单击,反之亦然 <tr onclick="doSomething()"> <td>text</td> <td>text</td> <td>text</td> <td onclick="doSomethingElse()"> <!-- dro

我有一个html表格。我在该表的每一行上都有一个click事件。我每行有4个项目,最后一个项目在下拉列表中。我希望在单击下拉项时防止行单击,反之亦然

<tr onclick="doSomething()">
  <td>text</td>
  <td>text</td>
  <td>text</td>
  <td onclick="doSomethingElse()">
    <!-- drop down elements -->
  </td>
</tr>

文本
文本
文本

我知道一些关于你的事;但是不知道如何在这里使用它。

您需要查找e.target或Event-target函数

function somefunction(e) {
  var target = e.target || e.srcElement;
  target.style.display= 'block';
}
另一件你可能需要的东西

var target = event.target;
var parent = target.parentElement;//parent of "target"

您需要查找e.target或事件目标函数

function somefunction(e) {
  var target = e.target || e.srcElement;
  target.style.display= 'block';
}
另一件你可能需要的东西

var target = event.target;
var parent = target.parentElement;//parent of "target"

这里不需要默认值。使用
stopPropogation()


文本
文本
文本

希望有帮助。

这里不需要默认值。使用
stopPropogation()


文本
文本
文本

希望有帮助。

您可以将事件作为doSomething函数中的参数之一传递,然后检查事件目标是否为父元素。看这个例子

function doSomething(e) {
    if(e.target == document.getElementById('father')) {
        //do stuff
    }
};
然后在HTML中,您只需要将事件参数添加到javascript函数中

<tr id="father" onclick="doSomething(event)">
  <td>text</td>
  <td>text</td>
  <td>text</td>
  <td id="son" onclick="doSomethingElse(event)">
    <!-- drop down elements -->
  </td>
</tr>

文本
文本
文本

您可以将事件作为doSomething函数中的参数之一传递,然后检查事件目标是否为父元素。看这个例子

function doSomething(e) {
    if(e.target == document.getElementById('father')) {
        //do stuff
    }
};
然后在HTML中,您只需要将事件参数添加到javascript函数中

<tr id="father" onclick="doSomething(event)">
  <td>text</td>
  <td>text</td>
  <td>text</td>
  <td id="son" onclick="doSomethingElse(event)">
    <!-- drop down elements -->
  </td>
</tr>

文本
文本
文本

你试过玩z-index吗?也就是
event.stopPropagation()?是的,但它不起作用。为td onclick()指定更大的z索引值z索引无效。这是一件大事。检查我下面的答案。你试过玩z-index吗?那就是
event.stopPropagation()?是的,但它不起作用。为td onclick()指定更大的z索引值z索引无效。这是一件大事。检查我下面的答案。不,这是错误的解决方法。首先,你不应该进入
somefunction
。不,这是解决这个问题的错误方法。首先,你不应该进入
somefunction