Я пытаюсь создать новый виджет на основе виджета кнопки и хотел бы узнать, как изменить стиль кнопки существующей кнопки jquery пользовательского интерфейса, если она уже создана, или создать новую кнопку jquery, если это не так. Как я могу проверить, был ли он уже создан, и если у него есть, как, например, изменить стиль?
Например, изменение существующей кнопки jquery ... Я хочу получить доступ к buttonElement
this.buttonElement.removeClass('ui-corner-all');
, но она не работает.
, но это работает на существующей кнопке jquery ...
this.element.on('click', function(){...});
Я знаю, что могу использовать
_create: function(){ this_super();}
для создания новой кнопки, и я могу легко получить доступ к buttonElement
... но, как я уже говорил ранее, если кнопка уже существует, она создает 2 jquery кнопки. вот так ...
<span class="ui-button-text"><span class="ui-button-text">Yes</span></span>
когда это должно быть только <span class="ui-button-text">Yes</span>
.
Я надеюсь, что смог объяснить, что я хочу сделать и проблемы Я сталкиваюсь с ... извините, я в лучшем случае обычный программист.
Отредактируйте, чтобы добавить пример кода: HTML:
<label for="testcb" >Yes</label>
<input type="checkbox" id="testcb" name="testcb"/>
JS:
var checkbox=$('body').find(':checkbox');
checkbox.each(function(){
$(this).button();
})
Jquery виджет пользовательского интерфейса:
$.widget( "new.checkbox", $.ui.button,{
_create: function(){
this._super();
}
})
Результат: добавляет удвоение, которое имеет эффект удвоения стилей, примененных к кнопке
<span class="ui-button-text">
<span class="ui-button-text">Yes</span>
</span>
Я знаю, что могу просто добавьте $('#testcb').button('destroy');
, но я бы хотел сделать это в виджете, обнаружив, добавлен ли элемент ui.button или нет. Если он уже создан, я бы хотел изменить элемент testcb
. Я также знаю, что buttonElement
- это значение, которое создает кнопка ui.button, которое можно изменить, но я не могу «добраться» до него из своего виджета.
Надеюсь, это прояснит ситуацию.