0

コードを使用して jquery モバイル パネルを開こうとしていますが、メソッドが認識されません。

私が得ているエラーは次のとおりです。「オブジェクト[オブジェクトオブジェクト}にはメソッド「パネル」がありません」

いくつかのjquery-mobile divページと外部javascriptファイルで構成されるhtmlページがあります。

これはjs関数です:

function open_panel() {

    var selected_child=$('#kids_select').val();
    alert(selected_child);

    $("#mypanel").panel("open");
      //    $("#mypanel").panel().panel("open");




}

$('#mypanel').live('pageinit', function () {
    alert("works");
});

私は別の学生によって開始されたプロジェクトであり、彼は html の head セクションに重複した js ファイルを含めました。古い jquery mobile が 1.3 の代わりに読み込まれているためだと思いますが、参照の一部を削除しようとすると、デザインが乱雑になったり、他のコードが認識されなかったりします。

ここにヘッドセクションがあります:

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
    <link rel="stylesheet" type="text/css" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />
    <link rel="stylesheet" type="text/css" href="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.min.css" />
    <script type="text/javascript" src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.core.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.mode.calbox.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/i18n/jquery.mobile.datebox.i18n.en_US.utf8.js"></script>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <title></title>
    <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
    <link rel="stylesheet" href="my.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
    </script>
    <script src="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.js">
    </script>

    <script src="js/js_functions.js" type="text/javascript"></script>

最後に、パネルを指す「a」タグに href 属性を追加しました。関数が起動した後にロードされますが、パネルの pageinit 関数は起動しません。

私は試した:

$('#mypanel').live('pageinit', function () {
    alert("works");
});

と:

 $('#mypanel').live('pageshow', function () {
        alert("works");
    });

しかし、それはうまくいきません

html 本文の関連部分は次のとおりです: (パネル付き)

 <div data-role="page" id="mainpage">

            <div data-theme="b" data-role="header">
                <h3>
                    Iallow
                </h3>
            </div>

            <div data-role="content" style="text-align: center;">
                <div>

                    <div style="width: 50%; float: left">
                        <label for="NewkidBTN">
                            Click to add new kid</label>
                        <a id="NewkidBTN" data-role="button" data-theme="b" href="#RegisterChild" data-icon="plus"
                            data-iconpos="right">Add Kid</a>
                    </div>

                    <div id="kids_div">

                    </div>
                </div>
                <a onclick="open_panel()" href="#mypanel" data-role="button" data-inline="true" data-icon="bars">Add transaction</a>


            </div>

            <div data-role="panel" id="mypanel">
                    <h3>enter action</h3>
                    <select name="select-type" id="select-type" onclick="return select-type_onclick()">
                        <option value="deposit">deposit</option>
                        <option value="withdrawal">withdrawal</option>
                    </select>
                    <label for="ammount">Write the ammount</label>
                    <input type="number" data-clear-btn="false" name="ammount" id="ammount" value="">
                    <label for="desc" class="ui-hidden-accessible">
                        description:</label>
                    <input type="text" name="desc" id="descTB" value="" placeholder="description" runat="server" />
                    <button id="Button1" type="submit" data-theme="b" data-icon="check" runat="server" onclick="transaction">
                        submit</button>
                </div>

編集:

古い jquery mobile と jquery を削除して head セクションを変更しました。パネルが読み込まれるようになりましたが、パネルに追加した pageinit 関数が起動しません。次のようなすべての構文を試しました。

$('#mypanel').live('pageshow', function () {
    alert("works");
});

$('#mypanel').live('pageinit', function () {
    alert("works");

$('#mypanel').on('pageshow', function () {
    alert("works");
});

$('#mypanel').on('pageinit', function () {
    alert("works");
});

おそらく、パネルはjqueryモバイルのページのようには機能しません..

ヘッドは次のようになります。

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
    <!--<link rel="stylesheet" type="text/css" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />-->
    <link rel="stylesheet" type="text/css" href="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.min.css" />
    <!--<script type="text/javascript" src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>-->
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.core.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/latest/jqm-datebox.mode.calbox.min.js"></script>
    <script type="text/javascript" src="http://dev.jtsage.com/cdn/datebox/i18n/jquery.mobile.datebox.i18n.en_US.utf8.js"></script>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <title></title>
    <!--<link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.css" />-->

    <!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
    </script>-->
    <!--<script src="https://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.js">
    </script>-->

    <script src="js/js_functions.js" type="text/javascript"></script>
4

0 に答える 0