2

jQueryMobileを使用してWebアプリを作成しています。アプリを使用してボタンをクリックすると、スクリプトが複数回実行されます。

例えば:

送信ボタンがあります:

<input type="submit" id="login-normal" value="Login" />

そして、私はこのエラーが発生するデバッグ用にこのJavaScriptを持っています:

$("input#login-normal").live('click',function() {
     console.log("Test");
});

最初のクリックでは機能しますが(たとえば、別の画面に移動します)、その画面に戻ってもう一度クリックすると、複数のconsole.logsが出力されます。

  • 編集

これは私の.jsファイルとまったく同じコードです。

$("div#login input#login-normal").live('click',function() { 
    var email = $("input#email").val();
    var password = $("input#password").val();

    user.checkUser(email, password, function(exists) {
        if (exists) {
            $.mobile.changePage("#home", { transition: "slidedown"});
        } else {
            console.log("Wrong email or password.");
        }
    });
    console.log("Login");
});

user.checkUserは、ユーザーがデータベース(WebSQL)に存在するかどうかをチェックする私のクラスUserのオブジェクトです。コールバック時にtrueまたはfalseを返します。

4

2 に答える 2

1

onの代わりに使用して、次のliveように試すことができますか

$("input#login-normal").off('click').on('click',function() {
    //...
});
于 2012-10-22T23:21:12.877 に答える
0

試す

$.mobile.activePage.find("div#login input#login-normal").live('click',function() {...}

それでも複数回起動する場合は、試すことができます

$(document).delegate("[data-role=page]", "pagebeforeshow", function () {                
        $("div#login input#login-normal").bind("click", function (e) {...}
}
于 2012-10-22T23:20:52.377 に答える