2013-11-09 3 views
1

У меня код как следующийJQuery PageBeforeShow Event Binding Несколько раз

$(document).on("pagebeforeshow", "#Newpage", function (event) { 
    $(".newtext").change(function() { 
      dostuff(); 
     }); 

    }); 

Теперь проблема каждый раз, когда NewPage загружен, связывание

$ ("newtext") .Кнопка (функция()

происходит, и это срабатывает несколько times.So на 1-й раз, если я открываю страницу DoStuff() происходит один раз, если я перейти на другую страницу и вернуться к #Newpage опять же это происходит в два раза и так далее значение isFirstTime

+0

'$ (документ) .На ("pagebeforeshow", "#Newpage"' если вы вставили в некоторой глобальной функции попытаться положить, что в 'pageinit' функции jqm – Jai

ответ

2

Вы можете попробовать это:

$(document).one("pagebeforeshow", "#Newpage", function (event) 
+0

ваше решение работает, однако это означает, что если я нажму кнопку на этой странице и вернусь назад (с помощью кнопки возврата jquery) на эту страницу, страница не будет готова, любая идея? – Smith

0

истинна в очень первых, лучшее место deviceready событие

window.sessionStorage.setItem("isFirstTime", true);

pagebeforeshow событие происходит каждый раз, когда страницы перед нагрузок необходимо поддерживать в сессии хранения или LocalStorage или локальная переменная, как, что только

$(document).on("pagebeforeshow", "#Newpage", function (event) { $(".newtext").change(function() { if(window.sessionStorage.getItem("isFirstTime");){ dostuff(); } }); });

В функции

function dostuff(){ window.sessionStorage.setItem("isFirstTime", false); // do your code below... }

Надеюсь, этот пример поможет вам решить проблему.

Смежные вопросы