[問題] event順序

看板Web_Design作者 (咻咻~)時間9年前 (2014/09/26 01:37), 編輯推噓0(0013)
留言13則, 3人參與, 最新討論串1/1
嗨大家好 先來段code <script> function show(){ document.getElementById('b').style.display = ""; } function hide(){ document.getElementById('b').style.display = ""; } </script> <input id="a" value="" onclick="show()" onblur="hide()" /> <div id="b" style="display: none;"> <span onclick="document.getElement('a').value='1';">AAA</span> <span onclick="document.getElement('a').value='2';">BBB</span> </div> 我要做的就是點input會展開div b 再點span會將一個值填回 然後當沒有要用這個功能時div又會隱藏起來 不知道這樣說大家懂不懂呢 大概就像select一樣 點其他地方option就會消失 可是我現在遇到一個問題 我用onblur 那麼再點span時就會因為呼叫了hide() 而無法觸發span的click 請問這該如何解呢? 謝謝大家~~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.129.1.4 ※ 文章網址: http://www.ptt.cc/bbs/Web_Design/M.1411666627.A.419.html

09/26 02:39, , 1F
09/26 02:39, 1F

09/26 02:40, , 2F
簡單來說就是span上的改用onmousedown
09/26 02:40, 2F

09/26 02:40, , 3F

09/26 02:41, , 4F
問題就出在,既然onblur call了 hide function
09/26 02:41, 4F

09/26 02:42, , 5F
span事件為何還需要觸發? 因為已經藏起來辣
09/26 02:42, 5F

09/26 02:43, , 6F
span父元素就是div#b,既然 div#b 隱藏了 span 本來就不該
09/26 02:43, 6F

09/26 02:43, , 7F
有任何click事件被觸發,因為就點不到啊
09/26 02:43, 7F

09/26 03:08, , 8F
http://jsbin.com/reyana/2 稍微說一下順序
09/26 03:08, 8F

09/26 03:12, , 9F
所以你要嘛就改聽滑鼠事件,要嘛就改用可focus元素
09/26 03:12, 9F

09/26 03:13, , 10F
在onblur裡判斷新目標是不是選項
09/26 03:13, 10F

09/26 09:38, , 11F
感謝my大~
09/26 09:38, 11F

09/26 09:40, , 12F
@alog:我想做出那樣的功能,但不太會寫,才生出奇怪的code
09/26 09:40, 12F

09/26 09:40, , 13F
XD‘’
09/26 09:40, 13F
文章代碼(AID): #1K95B3GP (Web_Design)