Ошибка с JQuery Mobile Link / Кнопка при нажатии - PullRequest
3 голосов
/ 29 ноября 2011

Если у меня есть ссылка в моем приложении jQuery Mobile и сделать ее кнопкой .button();. Если я нажму на текст (центр кнопки), он не выдаст событие «щелкнуть».

Вот пример: http://jsfiddle.net/9rZHg/

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

То же самое происходит при тестировании на устройстве.

Есть ли простой способ избежать этого, или мне нужно использовать теги <button> везде в моем приложении?

Спасибо

Ответы [ 2 ]

5 голосов
/ 30 ноября 2011

Разработчик в проекте jQuery Mobile, здесь.

Хотя приведенное выше исправление может временно исправить проблему, фундаментальная проблема заключается в том, что плагин button() предназначен для button элементов и входов. Добавление атрибута data-role="button" или вызов плагина buttonMarkup() предотвратит эту проблему.

2 голосов
/ 29 ноября 2011

Я раньше не создавал подобные кнопки, но проблема в z-index элемента <a>. Если вы добавите следующий CSS-код на свою страницу, вы сможете нажать на любую часть кнопки, чтобы вызвать событие click:

/*place the hidden link on top of the button UI*/
.ui-btn-hidden {
    z-index : 2;
}

Эта проблема не возникает при использовании data-role="button" для тега <a> следующим образом:

<a href="" data-role="button">A tag w/ data-role="button"</a>

Вот jsfiddle обоих этих решений: http://jsfiddle.net/jasper/9rZHg/1/

...