我在onclick事件中有两个问题,它们有点类似,所以我会在这里问他们.
第一:
我在div中有一个复选框.输入具有onchange功能,div具有onclick功能.
<div onclick="doSomething()">
<input type="checkbox" onchange="doSomethingElse()" />
</div>
Run Code Online (Sandbox Code Playgroud)
问题是当我选中/取消选中doSomething()和doSomethingElse()时复选框.有关如何阻止这种情况发生的任何想法?我尝试过onchange ="doSomethingElse(event)"和doSomethingElse(e)函数我有e.stopPropagation(); 这没用.
第二:
我在div中有一个图像.div具有onclick功能,但图像没有.故意,图像比div大,并溢出div.
-----------------------
| image |
| --------------- |
| | div | |
| | | |
| --------------- |
| |
-----------------------
Run Code Online (Sandbox Code Playgroud)
如果用户在div框的边界内单击,我只希望触发onclick.但是,如果你点击溢出到div外部的图像的一部分,onclick事件也会触发...任何想法?
第一个问题对我来说比第二个问题更重要.但如果有人能够回答这两个问题那就太棒了!
先谢谢你的帮助,
马特
我的表格和复选框还有另一个问题。我已经让我的 javascript 工作了,它允许我的复选框在我点击表格单元格内的任何地方时进行检查。但是,现在复选框本身不起作用。我已经尝试解决这个问题一个多小时了,在任何地方都找不到答案。这是我的 javascript 和它正在操作的 html 片段:
function tdOnclick(td) {
for(var i = 0; i < td.childNodes.length; i++) {
if(td.childNodes[i].nodeName == "INPUT") {
if(td.childNodes[i].checked) {
td.childNodes[i].checked = false;
td.style.backgroundColor = "#FAF4E3";
} else {
td.childNodes[i].checked = true;
td.style.backgroundColor = "#E1E1E1";
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是表格的一部分 html:
<tr>
<td><center>9:00 - 10:00</center></td>
<td class="tdata" onclick="tdOnclick(this)"><input type="checkbox" name="free" value="mon09"></td>
<td class="tdata" onclick="tdOnclick(this)"><input type="checkbox" name="free" value="tue09"></td>
<td class="tdata" onclick="tdOnclick(this)"><input type="checkbox" name="free" value="wed09"></td>
<td class="tdata" onclick="tdOnclick(this)"><input type="checkbox" name="free" value="thu09"></td>
<td class="tdata" onclick="tdOnclick(this)"><input type="checkbox" name="free" value="fri09"></td> …Run Code Online (Sandbox Code Playgroud)