Как предотвратить автоматическое закрытие в мобильном диалоге jquery - PullRequest
1 голос
/ 16 января 2011

Я пытаюсь использовать диалог Jquery Mobile.В документации указано, что diaglog будет закрыт, если пользователь щелкнет по любой ссылке на странице диалога.

Документация:

"Когда в диалоге нажимается любая ссылка, платформа автоматически закрывает диалоговое окно и переходит на запрошенную страницу, как если бы диалог был обычной страницей.Создайте кнопку «Отмена» в диалоговом окне, просто укажите ссылку на страницу, которая открыла диалоговое окно. Этот шаблон ссылки на предыдущую страницу также можно использовать на устройствах, не поддерживающих JS.

КакЯ это предотвращаю?

Ответы [ 3 ]

3 голосов
/ 19 января 2011

Не используйте тег <a>, используйте <div>

<div id="my_button" data-role="button" data-theme="a">Don't Close</div>

Тогда вам просто нужно программно прикрепить некоторые действия к нажатию этого div

$('#my_button').live('click', function({
    // do something
}
0 голосов
/ 12 декабря 2012

WOM-решение хорошо, но вам не нужно переходить с тега на. Вам просто нужно изменить href как href = "#", как сказал Мар. У меня есть тест, как это, он отлично работает.

И если по-прежнему невозможно предотвратить действие по умолчанию, добавьте e.preventDefault () в обработчик нажатия кнопки.

0 голосов
/ 06 марта 2012

Если вы добавите функцию в onclick, она переопределит поведение по умолчанию. Просто оставьте href="#" в теге, поместите функцию как onclick="myFunction()", и все будет хорошо.

Затем в функции вы можете выполнить закрытие с помощью: $('.ui-dialog').dialog('close')

Или вы можете перейти на другую страницу с помощью: $.mobile.changePage('#page')

Я уверен, что вы уже пошли дальше, но, надеюсь, это может помочь кому-то еще, ищущему это решение.

...