jQueryUI, состояние переключателя и события щелчка

У меня есть страница с несколькими наборами переключателей, которые используются для установки опций. Когда каждый нажимает на определенные, другие выбраны значением по умолчанию с помощью обработчиков события Click. Функциональность работает отлично, но существует проблема с визуальным состоянием кнопки.

Я использую .buttonset jQueryUI () метод для улучшения эстетики, и когда я инициировал .click () событие программно, кнопка не изменяет состояние визуально. Это может привести к текущим опциям, являющимся очень отличающимся от того, что появляется на экране.

Пример кода для иллюстрирования проблемы:

$('fieldset').buttonset(); $('#button2').click(function() { alert('button 2 clicked'); }); $('#button2').click();

​I также настраивают скрипку, таким образом, Вы видите его в действии, если Вы, так требуйте: http://jsfiddle.net/T5MGh/

Как Вы ожидали бы, окно предупреждений открывается на загрузке страницы, как это должно, но кнопка не изменяется визуально, как это делает от пользовательского щелчка.

Какие-либо мысли?

7
задан Rookwood 19 June 2010 в 20:17
поделиться

1 ответ

Вы можете щелкнуть фактическую метку, которую использует набор кнопок, например:

$('[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, он полагается на щелчок через , а поведение браузера по умолчанию фактически щелкает из этого.

7
ответ дан 6 December 2019 в 23:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: