我有一個小問題,我不知道它來自哪裏。 我使用jQuery UI(當然jQuery的)Jquery UI中的按鈕有一些標籤變化的問題
我有以下HTML:
<input type="checkbox" id="test" value="test"/>
<label for="test">Show Test</label>
<div id="checkedDiv"></div>
及以下JS:
function clickChange() {
var currentText = this.nextSibling.innerHTML;
this.nextSibling.innerHTML =
(this.checked) ? currentText.replace("Show","Hide") :
currentText.replace("Hide", "Show");
$("#checkedDiv").text(this.nextSibling.innerHTML);
}
var test=document.getElementById("test")
test.onclick=clickChange;
$("#test").button();
的問題是,在第一次點擊,innerHTML不會改變。之後,它的作品。 爲了讓人有點失望,nextSibling似乎改變了(至少從#checkedDiv中看到的是),但沒有出現在firefox/firebug上的DOM Tree上。
我錯過了什麼嗎?
感謝 (如果你想自己嘗試一下,它在這裏:http://jsfiddle.net/nvNKW/3/)
編輯:
的(或至少一個)解決方案是使用標籤阿齊茲·謝赫的建議:
function clickChange() {
var currentText = $(this).button("option","label");
$(this).button("option","label",(this.checked)? currentText.replace("Show","Hide") : currentText.replace("Hide", "Show"));
}
並且沒有必要更改html或按鈕初始化。
的觀察,如果你註釋掉$( 「#測試」)按鈕()。那麼你的代碼似乎很好。 –
是的,我注意到,這可能是jQuery UI引入了一些破壞它的東西。 –