看板 Web_Design 關於我們 聯絡資訊
嗨大家好 先來段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
mmis1000: http://goo.gl/cIPzkw 09/26 02:39
mmis1000: 簡單來說就是span上的改用onmousedown 09/26 02:40
mmis1000: http://jsbin.com/reyana/1/edit 09/26 02:40
alog: 問題就出在,既然onblur call了 hide function 09/26 02:41
alog: span事件為何還需要觸發? 因為已經藏起來辣 09/26 02:42
alog: span父元素就是div#b,既然 div#b 隱藏了 span 本來就不該 09/26 02:43
alog: 有任何click事件被觸發,因為就點不到啊 09/26 02:43
mmis1000: http://jsbin.com/reyana/2 稍微說一下順序 09/26 03:08
mmis1000: 所以你要嘛就改聽滑鼠事件,要嘛就改用可focus元素 09/26 03:12
mmis1000: 在onblur裡判斷新目標是不是選項 09/26 03:13
mobi76: 感謝my大~ 09/26 09:38
mobi76: @alog:我想做出那樣的功能,但不太會寫,才生出奇怪的code 09/26 09:40
mobi76: XD‘’ 09/26 09:40