2012-04-25 15 views
1

私はこれを理解しようとしていましたが、依然として固執しています。 私はiOSとJQueryMobileのPhoneGapを使用しています。 ボタンをクリックしたときに警告を表示しようとしています。jquery mobile + phonegap onclick

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" /> 
<!-- If your application is targeting iOS BEFORE 4.0 you MUST put json2.js from http://www.JSON.org/json2.js into your www directory and include it here --> 
<script type="text/javascript" charset="utf-8" src="cordova-1.6.1.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"> 
     </script> 
    <script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"> 
     </script> 

と私はクロームでこれを起動しようとしたとき、私はこの

<a href="#" id="button" data-role="button" data-theme="b"> Login </a> $(document).ready("#button").click(function() { alert('button clicked'); });

を持っているが、これは正常に動作します。 しかし、私はiPhoneのシミュレータを使用して、それは何も表示されません。あなたはすなわち

$(function(){ // <-- this is a shortcut for $(document).ready(function(){ ... }); 
    $('#button').click(function(){ 
     alert('button clicked'); 
    }); 
}); 

をDOM準備を使用することになり、通常のWebアプリケーションの

答えて

7

しかしJQMアプリケーションでそれがすなわち

作品をpageinitするバインディング
$(document).on('pageinit','[data-role=page]',function(){ 
    $('#button').click(function(){ 
     alert('button clicked'); 
    }); 
}); 

「pageinit」にバインドするためにはるかに便利ですJQMは新しいページを最初のページと同じdomに挿入するため、このため、すべてのコードをDOMで準備しておくと、再び呼び出されることはありません。したがって、上記の最初のコードは、JQMアプリケーションの最初のページでのみ機能します。 2番目のボタンは、ボタンのページが何であっても機能します。これをさらに明確にすることができたら教えてください。

+0

ありがとう、私は問題が実際に最新のPhoneGapバージョンであると考えました。私はその後、PhoneGap 1.5を使用し、それは正常に動作します。 – ordinaryman09

+0

あなたが気にしないなら別の質問があります。 私はこのindex.htmlとlogin.htmlを持っており、インデックスからログインへのリンクにはhrefを使用します。 各index.htmlとlogin.htmlで私はJavaScriptをインポートします。 しかし、ロードされているのはindex.htmlのものだけであるようです。 login.html用のindex.htmlにjsを置くとうまくいきます。 しかし、私たちはそれを別々に置いています(index.htmlにないlogin.htmlの別のjs)、それはうまくいきません。 – ordinaryman09

+1

私はこれがコメントではなく新しい質問として最もよく尋ねられると思う – Todd

関連する問題