Так что я использую Jquery Mobile с большим успехом, за исключением одного выпуска.Теперь каждый раз, когда пользователь перемещается по странице динамического контента, независимо от того, какой контент отображается, всегда есть кнопка внизу, которая при нажатии отправляет контент по электронной почте на указанный адрес;работает отлично.Теперь при первой загрузке страницы щелчок запускает событие один раз.При втором посещении его стреляют дважды, третьем - 3 раза и т. Д., Вы получаете очко.Я проверил сеть и внедрил все исправления, с которыми я мог столкнуться, например, используя «pagecreate» вместо «pageinit», привязку, отмену привязки, удаление div, отключение кэширования в DOM, но ничего не работает.Единственный успех, который у меня был, - это использование .one()
на клике, но при повторном нажатии его нужно запустить.Вот структура.У меня есть .js
файлы, которые загружаются каждый с этим, чтобы начать
$( "#page" ).live( "pageinit", function() {
Теперь у меня была функция электронной почты и другие вещи в одном файле, но это облегчает их разделение, и я слышал, что это не такиметь значение.Теперь вот функция электронной почты, вызываемая в pageinit
$('.eb').live('click', function() {
var id = $('.eb').attr('id');
var to = $('#recipient').val();
var message = $('#email').html();
var atpos = to.indexOf("@");
var dotpos = to.lastIndexOf(".");
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= to.length) {
alert('Please enter a valid email address!');
return false;
}
if(to.length == 0) {
alert('Please enter a valid email address!');
return false;
}
$.mobile.showPageLoadingMsg();
$.post('./services/service.email.php', { id: id, to: to, message: message}, function(data) {
if(data.success == true) {
$.mobile.hidePageLoadingMsg();
alert('Your recipe has been sent!');
$('#recipient').val('');
return true;
}
if(data.success == false) {
if(data.fail == 1) {
alert('An error has occured sending your recipe. Try again soon!');
return false;
}
if(data.fail == 2) {
alert('Please enter a valid email address!');
}
}
}, 'json');
return false;
});
Все работает безупречно, за исключением пошагового запуска .click
на каждой новой странице.Кто-нибудь может привести меня в правильном направлении?