欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

click点击请求$.ajax,怎么让他请求一次,关闭后才能再次请求

程序员文章站 2023-12-27 21:16:09
...
仿的是花瓣登录效果,他默认HTML是这样的

点击登录,会在#page里面加上登录框,


登录花瓣

点击关闭后,会删除这个登录框。而且出来的时候是向下拉,关闭的时候是向上收,我把上面代码放在/include/pop-login.php里面

 onclick="app.showSheet('login', {modal: true});return false;"

他这样的方式怎么写

$('.login').on('click',function(){
    $.ajax({
        async: false,
        url: "/include/pop-login.php",
        cache: false,
        success: function(html){
            $("#page").append(html);
        }
    });
});
$('#sheet_login .close').live('click',function(){
    $('.sheet-overlay').remove();
    $('#sheet').remove();
});

回复内容:

仿的是花瓣登录效果,他默认HTML是这样的


点击登录,会在#page里面加上登录框,


登录花瓣

点击关闭后,会删除这个登录框。而且出来的时候是向下拉,关闭的时候是向上收,我把上面代码放在/include/pop-login.php里面

 onclick="app.showSheet('login', {modal: true});return false;"

他这样的方式怎么写

$('.login').on('click',function(){
    $.ajax({
        async: false,
        url: "/include/pop-login.php",
        cache: false,
        success: function(html){
            $("#page").append(html);
        }
    });
});
$('#sheet_login .close').live('click',function(){
    $('.sheet-overlay').remove();
    $('#sheet').remove();
});

大概这种感觉?

function on_click_login(){
    $.ajax({
        async: false,
        url: "/include/pop-login.php",
        cache: false,
        success: function(html){
            $("#page").append(html);
        },
        error: function(){
            $('.login').one('click',on_click_login);
        }
    });
}

$('.login').one('click',on_click_login);
$('#page').on('click','#sheet_login .close',function(){
    $('.sheet-overlay').remove();
    $('#sheet').remove();
    $('.login').one('click',on_click_login);
});

PS,因为不喜欢live所以随手改掉了……

也碰到过楼主的这样的问题,那个时候也没有什么好方法解决。当时用了一个很丑陋的方法解决掉的。
当时在页面上写了一个隐藏变量,每次ajax触发之前,都清零,ajax执行成功之后,延迟100ms,才给他赋值,然后每次按键的时候,都预先判断这个隐藏变量是否有值。

var popLogin = {
    isLock: false,
    init: function() {
        if (popLogin.isLock) {
            //TODO...
            return false;
        }
        $.ajax({
            url: "/include/pop-login.php",
            cache: false,
            success: function(html){
                $("#page").append(html);
            },
            complete: function() {
                popLogin.isLock = false;
            }
        });
    }
};

$('.login').on('click', popLogin.init());

难道不是在click时disable掉按钮,然后在ajax结束的时候enable吗……

相关标签: ajax php

上一篇:

下一篇: