2011年2月18日

jQuery UI 的疑似 BUG

關鍵字:jQuery UI, checkbox, .button(), .buttonset()
資料:某人的提問

今天玩 jQuery UI 遇到了一些問題

$("#按鈕").attr('checked', true)
用 jQuery 將按鈕的"被選取"狀態改成 true
結果按鈕的樣式沒動靜

document.getElementById("按鈕").checked = true
改用原生方法將按鈕的"被選取"狀態改成 true
一樣裝死

document.getElementById("按鈕").click()
然後用原生提供的方法模擬點擊
就成功了~

$("#按鈕").click()
改用 jQuery 模擬點擊
又裝死了

接著上網找資料,找到了上面那篇
如果硬要使用 jQuery
解決方法是
$("#按鈕").attr('checked', true)
$("#按鈕組").button('refresh')

而這個按鈕組的 refresh 方法是 jQuery UI 提供的
這方法是本來就設計來解決這 BUG
還是只是剛好而已就不知道了...

註:
因為我有設定按鈕的 click 事件
$("#按鈕").click(function(){產生對話框})

如果用下面方法設定對話框關閉時回復按鈕的點擊狀態
$("#按鈕").click()
$("#按鈕組").button('refresh')
第一行又會觸發產生對話框

所以在這個情況使用這個方法會有 BUG
不過通常來說這方法是可行的

沒有留言:

張貼留言

Likey
創用 CC 授權條款