У меня есть страница с несколькими наборами переключателей, которые используются для установки опций. Когда каждый нажимает на определенные, другие выбраны значением по умолчанию с помощью обработчиков события Click. Функциональность работает отлично, но существует проблема с визуальным состоянием кнопки.
Я использую .buttonset jQueryUI () метод для улучшения эстетики, и когда я инициировал .click () событие программно, кнопка не изменяет состояние визуально. Это может привести к текущим опциям, являющимся очень отличающимся от того, что появляется на экране.
Пример кода для иллюстрирования проблемы:
$('fieldset').buttonset();
$('#button2').click(function() {
alert('button 2 clicked');
});
$('#button2').click();
I также настраивают скрипку, таким образом, Вы видите его в действии, если Вы, так требуйте: http://jsfiddle.net/T5MGh/
Как Вы ожидали бы, окно предупреждений открывается на загрузке страницы, как это должно, но кнопка не изменяется визуально, как это делает от пользовательского щелчка.
Какие-либо мысли?
Вы можете щелкнуть фактическую метку, которую использует набор кнопок, например:
$('[for=button2]').click();
Это работает, потому что ваша структура выглядит так после .buttonset ()
:
<fieldset class="ui-buttonset">
<label for="button1" aria-pressed="false" class="ui-button ui-widget ui-state-default ui-button-text-only ui-corner-left" role="button" aria-disabled="false"><span class="ui-button-text">Button 1</span></label>
<input type="radio" id="button1" name="test" class="ui-helper-hidden-accessible">
<label for="button2" aria-pressed="true" class="ui-button ui-widget ui-state-default ui-button-text-only ui-corner-right ui-state-active ui-state-hover" role="button" aria-disabled="false"><span class="ui-button-text">Button 2</span></label>
<input type="radio" id="button2" name="test" class="ui-helper-hidden-accessible">
</fieldset>
Изначально он не работает из-за того, как это делает пользовательский интерфейс jQuery, он полагается на щелчок
через
, а поведение браузера по умолчанию фактически щелкает
из этого.