[問題] onclick 在 tr 上 **FF已測
[[[ 參考資料 : 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: 114.34.30.6
→
02/22 14:01, , 1F
02/22 14:01, 1F
→
02/22 14:12, , 2F
02/22 14:12, 2F
推
02/22 14:18, , 3F
02/22 14:18, 3F
→
02/22 14:19, , 4F
02/22 14:19, 4F
→
02/22 14:19, , 5F
02/22 14:19, 5F
→
02/22 14:21, , 6F
02/22 14:21, 6F
推
02/22 14:21, , 7F
02/22 14:21, 7F
→
02/22 14:21, , 8F
02/22 14:21, 8F
→
02/22 14:22, , 9F
02/22 14:22, 9F
推
02/22 14:24, , 10F
02/22 14:24, 10F
→
02/22 14:26, , 11F
02/22 14:26, 11F
→
02/22 14:26, , 12F
02/22 14:26, 12F
→
02/22 14:26, , 13F
02/22 14:26, 13F
→
02/22 14:26, , 14F
02/22 14:26, 14F
→
02/22 14:27, , 15F
02/22 14:27, 15F
→
02/22 14:28, , 16F
02/22 14:28, 16F
→
02/22 14:28, , 17F
02/22 14:28, 17F
→
02/22 14:31, , 18F
02/22 14:31, 18F
→
02/22 14:31, , 19F
02/22 14:31, 19F
→
02/22 14:31, , 20F
02/22 14:31, 20F
→
02/22 14:32, , 21F
02/22 14:32, 21F
用編輯的好了:
畫面看起來會像是
┌──┬─┬────────────┐
│ 口 │1 │[text:xxxxxxxxxxxxxx] │
├──┼─┼────────────┤
│....│ │ .................. │
點選非 input 的部分會觸發 onclick 把 checkbox 勾選或取消
但 input text 是要給使用者輸入的部分 ...
大概就是這樣
※ 編輯: kerash 來自: 114.34.30.6 (02/22 14:34)
推
02/22 14:35, , 22F
02/22 14:35, 22F
→
02/22 14:37, , 23F
02/22 14:37, 23F
→
02/22 14:37, , 24F
02/22 14:37, 24F
→
02/22 14:39, , 25F
02/22 14:39, 25F
→
02/22 14:41, , 26F
02/22 14:41, 26F
→
02/22 14:41, , 27F
02/22 14:41, 27F
→
02/22 14:43, , 28F
02/22 14:43, 28F
→
02/22 14:47, , 29F
02/22 14:47, 29F
以下是目前在網路上找跟在這邊組合的解答
function stopevt(e)
{
if( typeof(e)=="undefined"&&typeof(window.event)!="undefined") e =
window.event;
e.cancelBubble = true;
if (e.stopPropagation) {
e.stopPropagation();
}
}
但是在 FF 還是無效...Orz
※ 編輯: kerash 來自: 114.34.30.6 (02/22 14:49)
→
02/22 14:49, , 30F
02/22 14:49, 30F
→
02/22 14:59, , 31F
02/22 14:59, 31F
→
02/22 15:00, , 32F
02/22 15:00, 32F
→
02/22 15:01, , 33F
02/22 15:01, 33F
FIREFOX 測試結果,利用以下方法測
function mozchk()
{
alert("ohoh");
stopevt();
alert("oh2");
}
發現這樣測試,可以成功阻止 oh2 的alert
因此如果按照原本的狀況
function inpchk()
{
alert("what!");
stopevt();
}
<table>
<tr onclick="mozchk()">
<td><input type="text" onclick="inpchk()"></td>
</tr>
</table>
會是先讀取到 mozchk 才處理 inpchk 導致沒辦法阻止
而其他的 browser 則是先處理了 inpchk 才進行 mozchk
所以 mozchk 就被停住了 ...
大概是這樣,看來要用個 global flag 了...
※ 編輯: kerash 來自: 114.34.30.6 (02/22 15:05)
→
02/22 15:15, , 34F
02/22 15:15, 34F
→
02/22 15:18, , 35F
02/22 15:18, 35F
※ 編輯: kerash 來自: 114.34.30.6 (02/22 15:21)
推
02/22 15:26, , 36F
02/22 15:26, 36F
→
02/22 17:23, , 37F
02/22 17:23, 37F
→
02/22 17:23, , 38F
02/22 17:23, 38F
→
02/22 17:24, , 39F
02/22 17:24, 39F
→
02/22 17:25, , 40F
02/22 17:25, 40F
→
02/22 21:36, , 41F
02/22 21:36, 41F
→
02/22 21:36, , 42F
02/22 21:36, 42F
→
02/22 21:37, , 43F
02/22 21:37, 43F
→
02/23 00:37, , 44F
02/23 00:37, 44F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):