作者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
推 kerash:不是誤會,是我沒想到 e.target 這個方法 02/22 16:54
→ kerash:我是直接在 tr 上加 onclick,所以變成先取得 tr 的緣故 02/22 16:54
→ kerash:另外我的 table 是用 for跑出來的,所以可能不是用id設定 02/22 16:55
→ kerash:不過這個可以解,總之先謝謝了 02/22 16:55
推 kerash:剛剛測試後,我用ie9 他說沒 addachEvent 事件 02/22 17:04
→ kerash:也沒跑addEventListener, but chrome 成功 02/22 17:04