2012-05-26 86 views
0

使用jQuery Mobile的功能,我想,當用戶打開一個頁面警報(「」);使用的PhoneGap和jQuery

<div data-role="page" id="page3"> 
    <div data-role="header"> 
     <h1>Page Three</h1> 
    </div> 
    <div data-role="content"> 
     <script>alert('How are you');</script> 
    </div> 
    <div data-role="footer"> 
     <h4>Page Footer</h4> 
    </div> 
</div> 

但上面的代碼顯示了應用程序的啓動警報,並顯示警告,當我打開網頁就什麼也沒做。在此先感謝您的幫助。

+2

打開頁面?你什麼意思? –

回答

1

隨着jQueryMobile有specific events當知道頁面加載。

而應該嘗試以下方法(把這個在你的頭元素,車身前):

<script> 
$('#page3').live('pageshow', function() { 
    alert('Page ' + $(this).attr('id') + ' about to be shown'); 
}); 
</script> 

你也可以處理,而不是「pagebeforeshow」 /「pagecreate」事件。

+0

你也可以使用'this.id' - 不需要在該函數中創建一個新的jQuery事件,如果你不需要它。 – ThiefMaster

+0

確定你可以直接使用this.id來獲得id - 但是這並不會創建一個新的jquery *事件*,是嗎?! - 如果你想過度優化一個簡單例子的速度。這只是爲了向Lucas顯示他可以獲得當前頁面的jquery對象來完成他想要的任何事情(我真的懷疑他想要保持那種警戒狀態)。 – chrisben

1

這樣做。假設這個div在頁面加載後加載。

使用div ID訪問。

$('#page3').load(function() { 
    alert("loaded...."); 
}); 

訪問div類。

$('.page').load(function() { 
    alert("loaded...."); 
}); 
+0

我做錯了什麼? – Adil

+0

@AI猜猜別人不喜歡開口括號中的新線型,爲了讓你連+1都沒有 – ajax333221

+0

不喜歡,javascript中的新行開頭括號是錯誤的:)觀看javascript好部分由道格拉斯crockford :) – Jashwant

1

試試這個

<script> 
    $("div[data-role=content]").eq(0).ready(function() { 
     alert('How are you'); 
    }); 
</script> 
1

在下面的<head>部分你的頁面的地方:

<script> 
    $(document).on('pageshow','#page3',function(){ 
     alert('How are you'); 
    }); 
</script> 

注:的.live()方法已被棄用。有關詳情,請參閱the docs。 .on()方法也是首選,但需要使用jQuery 1.7+。如果您是jQuery 1.7之前的版本,請改爲使用委託。

<script> 
    $(document).delegate('#page3','pageshow',function(){ 
     alert('How are you'); 
    }); 
</script>