2012-06-26 29 views
0

我疑惑以下的執行順序:意外的頁面事件執行順序

$('#home').live('pageinit',function(){ 
    $('#test').hide(); 

    $(function() { 
     alert('test1'); 
    }); 

    $('#button').click(function(event) { 
     event.preventDefault(); 
    }); 
}); 

$('#home').live('pageshow',function(){ 
    alert('test3'); 
}); 

這裏是序列:

  1. pageinit被炒魷魚
  2. $('#test').hide()執行
  3. $('#button').click()...執行
  4. pageshowalert('test3')熄滅爲什麼作爲3號是不是alert('test1')執行
  5. alert('test1')被激發

感謝

回答

1

我不知道任何錯字是否存在的代碼,但它應該給你在檢查元素或開發者控制檯中的錯誤。嘗試封閉功能是這樣的:

(function() { 
    alert('test1'); 
})(); 

入住這fiddle完整的源

+0

是的,那些是錯別字(現已修復)。實際的代碼是正確的,但有趣的序列問題。 – chris

+0

你有沒有檢查小提琴,序列的工作原理如你所說在小提琴 – dhaval

+0

它就像你說的那樣工作!那麼使用'$(function(){})是什麼問題;'而不是?什麼是「延遲」執行的機制? – chris