JQuery Mobile PageCreate не загружать функцию - PullRequest
1 голос
/ 08 ноября 2011

Я относительно новичок в jquery и jquery mobile. У меня есть новый мобильный сайт, который использует загрузку страниц AJAX. Проблема, конечно, в том, что он не будет загружать скрипт на каждой странице, поэтому скрипт должен перейти на домашнюю страницу с меню.

Я использую pagecreate для прослушивания страницы, а затем загружаю скрипт для нее.

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

Я не уверен, какой правильный синтаксис.

        $('#calendar').live('pagecreate',function(event){
            function makeUpDates(){
                // concantenate values to date_start and date_end hidden inputs
                var dateString = document.getElementById('date').value,
                date = new Date(dateString);

                document.getElementById('date_start').value = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();

                var numDays = document.getElementById('slider').value;
                date.setDate(date.getDate() + parseInt(numDays));   

                var dateEnd = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();
                document.getElementById('date_end').value = dateEnd;

            }
        });         

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

UPDATE:

Будет ли это работать

HTML (страница с идентификатором = 'календарь'), удален по клику и добавлен идентификатор

<button type="submit" name="continue" id="continue" data-icon="arrow-r" data-iconpos="right">Continue</button>

JS

$('#calendar').live('pagecreate',function(event){
    // Call function when live event happens         
    $('#continue').click(function() {
        makeUpDates();
    });
});

// Move function outside live event
function makeUpDates() {
    // concantenate values to date_start and date_end hidden inputs
    var dateString = document.getElementById('date').value,
    date = new Date(dateString);

    document.getElementById('date_start').value = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();

    var numDays = document.getElementById('slider').value;
    date.setDate(date.getDate() + parseInt(numDays));   

    var dateEnd = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();
    document.getElementById('date_end').value = dateEnd;
}

Я не уверен, что вам даже нужно живое мероприятие, вы также можете попробовать это

//$('#calendar').live('pagecreate',function(event){
    // Call function when live event happens         
    $('#continue').click(function() {
        makeUpDates();
    });
//});
1 голос
/ 08 ноября 2011

Я не совсем уверен, что понимаю, но почему вы определяете функцию в функции? Таким образом, он никогда не называется, или вы хотите позвонить позже?

Если вы хотите, чтобы он выполнялся при создании страницы, вы можете просто сделать:

$('#calendar').live('pagecreate',function(event){
// concantenate values to date_start and date_end hidden inputs
var dateString = document.getElementById('date').value,
date = new Date(dateString);

document.getElementById('date_start').value = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();

var numDays = document.getElementById('slider').value;
date.setDate(date.getDate() + parseInt(numDays));   

var dateEnd = date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...