search

Home  >  Q&A  >  body text

javascript - jquery 问题 无法使用

jquery-1.11.0.min.js

function login(){
    var username = $("#username").val();
    var password = $("#password").val();
    var ret_url = encodeURI($("#ret_url").val());
    var post_path = $(".login-form").attr('action');

    if(username =="")
    {
        $("#username").css('color','#e7693f');
        return false;
    }
    else if(password == "")
    {
        $("#password").css('color','#e7693f');
        return false;
    }
    else{

        $.ajax({
            type:'post',
            url:post_path,
            data:{username:username,password:password,gopath:ret_url},
            dataType:'json',
            success: function(data){

                if(data.status == 0){
                    $("#errormsg").text(data.msg);
                }
                else if(data.status == 1)
                {
                    $("#errormsg").text(data.msg);
                    location.href = data['data'].gopath;
                }

            },
            beforeSend: function(XMLHttpRequest, textStatus){
                $("#login-btn").find("span").text("\u6b63\u5728\u767b\u9646\u002e\u002e\u002e");
                $("#errormsg").text("");
            },
            complete: function(){
                $("#login-btn").find("span").text("\u7acb\u5373\u767b\u9646");

            }
        })
    }
};
// #login-btn登陆按钮

$("#login-btn").on('touchstart click',function(){
    login();
});

电脑端没有问题! 到手机端就没用了 !

巴扎黑巴扎黑2901 days ago421

reply all(6)I'll reply

  • 黄舟

    黄舟2017-04-10 14:35:34

    desktop端没问题,那说明click事件绑定成功,并能成功执行你的login(),这里只触发了click事件;而移动终端多了touchstart事件,也就是说一个动作响应两个事件,几乎同时执行了两次login(),后面自个儿具体调试一下。(注: 看来题主已经引入触摸事件模块。)

    让移动终端只触发一个事件,使用creatTouch属性判断是否支持触摸事件。做法如下:

       var tap_click = ("createTouch" in document) ? "touchstart" : "click";
       $("#login-btn").on(tap_click,function(e){
          // code...
       });
    

    题外话:而且为何不使用tap事件。移动终端一般使用轻量级的zepto.js。

    reply
    0
  • 黄舟

    黄舟2017-04-10 14:35:34

    额,,看起来没什么错误啊,让高手来回答

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 14:35:34

    手机端不兼容吧

    reply
    0
  • 阿神

    阿神2017-04-10 14:35:34

    手机端试试只写

        var username = $("#username").val();
        alert(username);
    

    是否有值

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 14:35:34

    最好的是自己一步步调试下吧?
    到底是哪里的问题?
    是取值取不到还是异步路径不对,或者异步数据取不到,又或者是输出有问题?

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 14:35:34

    touchstart click 中间应该使用逗号而不是空格吧

    reply
    0
  • Cancelreply