使用jQuery 1.8.3
<!DOCTYPE html> <html> <head> <script src="js/jquery-1.8.3.min.js"></script> <script src="js/jquery.mobile-1.3.0.min.js"></script> <script> $.support.cors = true; $.mobile.allowCrossDomainPages = true; $("#home").live("pageshow",function( event ) { alert( "Ok. This is Home!" ); }); </script> </head> <body> <!--- HOME ---> <div data-role="page" id="home"> <h2>Hello World</h2> </div> </body> </html>
警报工作正常.
但是,使用jQuery 1.9.1(请注意我更改了版本,并使用“on”更改为“live”.
<!DOCTYPE html> <html> <head> <script src="js/jquery-1.9.1.min.js"></script> <script src="js/jquery.mobile-1.3.0.min.js"></script> <script> $.support.cors = true; $.mobile.allowCrossDomainPages = true; $("#home").on("pageshow",function( event ) { alert( "Ok. This is Home!" ); }); </script> </head> <body> <!--- HOME ---> <div data-role="page" id="home"> <h2>Hello World</h2> </div> </body> </html>
警报不起作用.我确定我做错了什么.我一直在读jQuery Mobile 1.3.0-stable会使用jQuery 1.9.1,但也许我错了.
解决方法
更改
$("#home").on("pageshow",function( event ) {
至
$(document).on("pageshow","#home",function( event ) {
on的语法与live的语法不同:在进行绑定时,接收和委托事件的元素必须存在.