作者emn178 (小残)
看板Ajax
标题Re: [问题] onclick 在 tr 上 **FF已测
时间Wed Feb 22 15:44:49 2012
不明白怎麽说不行用tagName去判断
我测试IE FF可以work
还是我误会你要的东西?
<table>
<tr id="row">
<td><input type="checkbox" id="chk"></td>
<td>OOO:</td>
<td><input type="text"></td>
<td>XXX:</td>
<td><input type="text"></td>
</tr>
</table>
<script>
var element = document.getElementById('row');
if (element.addEventListener)
element.addEventListener("click", check, false);
else
element.attachEvent("onclick", check);
function check(e)
{
var element = e.target || window.event.srcElement;
if(element.tagName == "INPUT")
return;
var chk = document.getElementById('chk');
chk.checked = !chk.checked;
}
</script>
※ 引述《kerash (烽火连天依山尽)》之铭言:
: [[[ 参考资料 : http://www.aichengxu.com/article/Javascript/627_7.html ]]]
: 我想做一个 onclick 的功能
: 是在 tr 上,会如下
: <table>
: <tr onclick="do_event(xxx)">
: <td><input type="checkbox" name="chkcal" /></td>
: <td><input type="text" name="inpcal[]" /></td>
: <td><input type="text" name="inpcal[]" /></td>
: ..
: </tr>
: </table>
: 但是遇到一个状况就是当我在 tr 点选时,正常的执行 js
: 然而在 input 上 click 却也会跟着执行 do_event 的动作
: 我的 do_event 是要用在处理 checkbox 的 checked 动作
: 所以这样的话会变成我在 checkbox 点选就会自动取消QQ
: 有甚麽方法能够在空白地方点击才会触发 do_event 事件吗?
: 感恩QQ..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.96.83.220
1F:推 kerash:不是误会,是我没想到 e.target 这个方法 02/22 16:54
2F:→ kerash:我是直接在 tr 上加 onclick,所以变成先取得 tr 的缘故 02/22 16:54
3F:→ kerash:另外我的 table 是用 for跑出来的,所以可能不是用id设定 02/22 16:55
4F:→ kerash:不过这个可以解,总之先谢谢了 02/22 16:55
5F:推 kerash:刚刚测试後,我用ie9 他说没 addachEvent 事件 02/22 17:04
6F:→ kerash:也没跑addEventListener, but chrome 成功 02/22 17:04