1

私はこれを理解しようとしてきましたが、それでも立ち往生しています。そのため、iOSとJQueryMobile用のPhoneGapを使用しています。ボタンがクリックされたときにアラートを表示しようとしています。

<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'); });

これをChromeで起動しようとすると、正常に動作します。しかし、iphoneシミュレーターを使用した場合、何も表示されません。

4

1 に答える 1

7

通常のWebアプリケーションの場合、domreadyを使用します。

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

ただし、JQMアプリケーションでは、「pageinit」にバインドする方がはるかに便利です。

$(document).on('pageinit','[data-role=page]',function(){
    $('#button').click(function(){
        alert('button clicked');
    });
});

JQMは最初のページと同じdomに新しいページを挿入するため、pageinitへのバインドはより適切に機能します。このため、domreadyのすべてのコードが再度呼び出されることはありません。そのため、上記のコードの最初のビットは、JQMアプリケーションの最初のページでのみ機能します。2つ目は、ボタンがどのページにあるかに関係なく機能します。これをさらに明確にできるかどうか教えてください。

于 2012-04-25T10:11:27.130 に答える