2012-10-25 80 views
2

在我的頁面加載中,我從jqm獲得2個提醒。來自我的代碼的任何問題?Jquerymobile在pageinit上發出2次提醒

我的代碼:

$(document).bind('pageinit', function() { 

alert('hi') // alerts 2 times... 

     if(navigator.platform.indexOf("iPhone") != -1){ 
      $('div.video-holder span ').hide(); 
     } 

    $('a[href="#"], a.disabled').bind('click touchstart',function (e) { 
     e.preventDefault(); 
    }); 

    if($(' #task-1,#task-2').length){ 
     candidateAccordion($('.candidate-list'));  
    } 
    if($('#task-3').length || $('#task-4').length){ 
     taskSelector($('#task-3,#task-4'));//only for tast list selection 
    } 
    if($('video').length){ 
     $('.video-holder').each(function(num,element) { 
      videoProcess($(element)); 
     }); 
    } 
    if($('#task1-candSelected').length){ 
     candidateUpdate($('#task1-candSelected')); 
    } 

    if($('#task2-results').length){ 
     task2ResultProcess(); 
    } 

    if($('#task3-results').length){ 
     task3ResultProcess(); 
    } 
    if($('#task4-results').length){ 
     task4ResultProcess(); 
    } 
    if($('#scoredUptoFinal').length){ 
     scoredUptoFinal(); 
    } 

}) 
+0

你在.html文件裏面有多少頁? @SergePashkevich你應該發佈一個新的問題與您的數據,以幫助你,更不用說,節省50你的代表 – Omar

+1

@Omar你是對的。我會用我的數據和環境發佈問題。 Okt讓我淹沒在你的話題 –

回答

0

你有一個多模板?可能是你有兩個pages使用相同的ID。 JQM加載第一個訪問頁面並因此加載它兩次。

也可能與this JQM git issue request中指出的那個問題有關。

也看看this chart,真的很好理解JQM發起的事件的順序。

-1

你不應該結合document與pageinit事件,你可以嘗試用一個顯示的頁面只

例如, $("#yourpageId").bind('pageinit', function() {...}

+0

文檔說,pageinit應該在文檔上 - 見[這裏](http://jquerymobile.com/test/docs/api/events.html) – frequent

1

如果您的警報觸發兩次,事件將被觸發兩次。

如何添加event的功能參數和安慰它,像這樣:

$(document).bind('pageinit', function (event) { 

    console.log(event) 

    ... 

這應該給你什麼正在發生的一些信息。

SO上的pageinit有很多問題(如here),所以也許他們也可以指出您的解決方案。

我也有多個pageinit事件觸發問題。我通常在第一次觸發後才這樣做是爲了lock-up頁:

$(document).bind('pageinit', function() { 
    if (!$('html').hasClass("mv-on")){ 
     $('html').addClass("mv-on"); 
     // trigger my stuff 
     } 
    }); 

這樣pageinit將整個DOM運行ONCE。您還可以通過向觸發了事件的頁面添加類或屬性來將其用於鎖定頁面。

此外,請確保pageinit是您的綁定/處理程序正確的事件。我經常試圖在pageinit上設置一些東西,比如當我試圖綁定到的類沒有被插入到DOM中時,就像通過類綁定到一個元素一樣。我現在通常會用pagebeforeshow,因爲那樣我就確定所有的背景都完成了。但只是一個問題。