2012-08-14 55 views
2

我想綁定一些新的事件並在動態加載的頁面上調用一些函數,但是那裏的例子看起來過時和/或不完整(甚至是jqm文檔)。我正在使用jQuery 1.7.2和jQuery Mobile 1.2。什麼是這樣做的正確方法?

$('#someButton').click(function(e) { 
     e.preventDefault(); 

     $.mobile.changePage("mypage2.html", { 
      type: 'GET', 
      changeHash: true 
     }); 

     //BELOW SHOULD BE CALLED WHEN THE PAGE LOADS THOUGH 
     doSomething(); 
     $('#menu_page .request-items', contentScopeOfPage2).click(function (e) { 
      doSomethingElse(); 
     }); 
}); 

回答

3

一般來說,你設置有問題的假頁面中的委託事件處理,像這樣:

$(document).on('pageinit', '#menu_page', function() { 
    $(this).find('.request-items').on('click', doSomethingElse); 
}); 

將此代碼在全球範圍內,並且只要#menu_page僞頁面初始化(是否它是同一文檔中的遠程文檔或僞頁面),則會正確設置事件處理程序。

這是演示:http://jsfiddle.net/mSAzF/