2

我正在使用 jQueryMobile 创建一个 webapp。当我使用该应用程序并单击一个按钮时,它会多次运行该脚本。

例如:

我有一个提交按钮:

<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 是我的 User 类中的一个对象,它检查用户是否存在于数据库 (WebSQL) 中。在回调中返回 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 回答