У меня небольшая проблема, и я не могу понять, откуда она взялась.Я использую jQuery UI (и, конечно, jQuery)
У меня есть следующий 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), но не появляется в DOM Tree на firefox / firebug.
Я что-то упустил?
Спасибо (если вы хотите попробовать сами, это здесь: 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 или инициализацию кнопки.