相关疑难解决方法(0)

如何在单击子项时停止为父元素触发onclick事件?

我在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事件也会触发...任何想法?

第一个问题对我来说比第二个问题更重要.但如果有人能够回答这两个问题那就太棒了!

先谢谢你的帮助,
马特

html javascript events onclick

12
推荐指数
3
解决办法
2万
查看次数

单击时我的复选框不会检查

我的表格和复选框还有另一个问题。我已经让我的 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)

html javascript jquery

4
推荐指数
1
解决办法
5万
查看次数

标签 统计

html ×2

javascript ×2

events ×1

jquery ×1

onclick ×1