[問題] Opera下選取單選框沒有及時反應

看板Ajax作者 (小小吳)時間14年前 (2012/06/25 20:37), 編輯推噓7(7028)
留言35則, 5人參與, 最新討論串1/1
※ [本文轉錄自 Web_Design 看板 #1Fw5fV6U ] 作者: willy69wu31 (小小吳) 看板: Web_Design 標題: [問題] Opera下選取單選框沒有及時反應 時間: Mon Jun 25 20:32:27 2012 http://114.33.156.118:46900/npueScience/ 這次受到某人的委託,需要製作電子問卷系統,PHP還是HTML什麼的目前不是問題 問題在於我希望讓單選題的答案在按下去後,可以有藍底標示出選取的答案 IE6~9 火狐 Google瀏覽器 都一切正常 唯獨Opera 12.00點答案卻不會變色。 **可是過一陣子卻又可以!** 重新整理後就又回到不會變色的狀態。 我測試發現Opera似乎讀取好這個網頁後過十幾秒鐘 滑鼠點答案才會有變色反應 原因是 開頭十幾秒鐘內 // 有jQuery 1.7.2 var selected = $('input[name=mcq]:checked').val(); selected竟然都是undefined 十幾秒過後selected就正常的出現1~4的答案代碼 想請教各位是否知道如何解決? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.33.156.118 ※ 編輯: willy69wu31 來自: 114.33.156.118 (06/25 20:33) ※ 編輯: willy69wu31 來自: 114.33.156.118 (06/25 20:36) ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: willy69wu31 (114.33.156.118), 時間: 06/25/2012 20:37:07

06/25 20:52, , 1F
not sure 改用document ready event 看看?
06/25 20:52, 1F

06/25 22:26, , 2F
opera預載機制的關係?
06/25 22:26, 2F

06/25 22:47, , 3F
這個我試過了 把<script>整段移到head裡 或放在body最尾端
06/25 22:47, 3F

06/25 22:49, , 4F
在opera都正常 就是放在body最前面不行
06/25 22:49, 4F

06/25 22:50, , 5F
http://jsfiddle.net/EktAM/4/ 可能是opera實作上的問題
06/25 22:50, 5F

06/26 00:17, , 6F
sorry 放在head還是一樣不行 直接用checked屬性吧 opera也
06/26 00:17, 6F

06/26 00:18, , 7F
06/26 00:18, 7F

06/26 00:24, , 8F
結論是jquery又出包了 那一段不要用jquery寫就好
06/26 00:24, 8F

06/26 00:27, , 9F
改用$(document).ready呢?
06/26 00:27, 9F

06/26 00:28, , 10F
至於原因可能是 $('input[name=mcq]:checked').val();這段
06/26 00:28, 10F

06/26 00:30, , 11F
在一開始做了window.load 就跑了這段 當時根本沒有任何勾選
06/26 00:30, 11F

06/26 00:30, , 12F
http://tinyurl.com/yl89zv3 關於兩種準備語法比較
06/26 00:30, 12F

06/26 00:32, , 13F
而造成了jquery內的錯誤值
06/26 00:32, 13F

06/26 00:33, , 14F
ready試過了 沒用opera 一樣掛
06/26 00:33, 14F

06/26 00:33, , 15F
感謝 sk1765 解決了
06/26 00:33, 15F

06/26 00:34, , 16F
window.load那段是為了某些瀏覽器按F5後會保留選取值
06/26 00:34, 16F

06/26 00:34, , 17F
所以重整完就重新上色
06/26 00:34, 17F

06/26 00:37, , 18F
了解 所以怎麼解決掉這問題??
06/26 00:37, 18F

06/26 00:39, , 19F
把js改成這樣 http://jsfiddle.net/MAcRt/
06/26 00:39, 19F

06/26 00:47, , 20F
06/26 00:47, 20F

06/26 00:55, , 21F
神奇,我的症狀和樓上寫的一樣..
06/26 00:55, 21F

06/26 00:56, , 22F
我再進一步檢查一下
06/26 00:56, 22F

06/26 00:58, , 23F
http://tinyurl.com/8xy39zn 這樣子似乎可以唷
06/26 00:58, 23F

06/26 00:59, , 24F
我改用.filter(':checked');後 opera12就正常了
06/26 00:59, 24F

06/26 00:59, , 25F
所以和report描述算相符...吧? 不過底下的test case
06/26 00:59, 25F

06/26 00:59, , 26F
卻又沒有問題
06/26 00:59, 26F

06/26 01:01, , 27F
我在猜想是因為 他chaining式的用法 在opera 上面
06/26 01:01, 27F

06/26 01:01, , 28F
實現的時候產生bug吧
06/26 01:01, 28F

06/26 01:02, , 29F
我剛在想sk那段說 沒有任何選項勾選 其實會回傳
06/26 01:02, 29F

06/26 01:02, , 30F
undefined 應該是不會造成到說掛掉的問題
06/26 01:02, 30F

06/26 01:09, , 31F
undefined 是不會掛 但是如果是一個變數裡面是undefined
06/26 01:09, 31F

06/26 01:11, , 32F
正好這個變數 又叫了方法 譬如x=undefined ; x.checked掛了
06/26 01:11, 32F

06/26 01:13, , 33F
http://tinyurl.com/8xy39zn 在opera我試還是掛
06/26 01:13, 33F

06/26 01:44, , 34F
我F5 關掉重開 清Cache 都試了 沒有問題呢@
06/26 01:44, 34F

06/26 01:44, , 35F
除了一個問題就是網頁還在跑就先點選項 那不會有反應
06/26 01:44, 35F
文章代碼(AID): #1Fw5jq_X (Ajax)
文章代碼(AID): #1Fw5jq_X (Ajax)