Javascript 单击后的多个显示

Javascript 单击后的多个显示,javascript,jquery,Javascript,Jquery,我已经构建了一个jQuery类别过滤脚本,它使用类别查询字符串调用WordPress日历页面。我得到一个问题,如果我点击按钮太快,两个日历实例显示。目前代码使用了一个隐藏的复选框,所以我认为它不是最佳的。有没有人能找到更好的方法来实现这一点?代码是否可以简化以提高效率 $("#test").load("/events/cal-page/"); $("#catbox li").prepend("<input type=\"checkbox\" style=\"display:none;\"

我已经构建了一个jQuery类别过滤脚本,它使用类别查询字符串调用WordPress日历页面。我得到一个问题,如果我点击按钮太快,两个日历实例显示。目前代码使用了一个隐藏的复选框,所以我认为它不是最佳的。有没有人能找到更好的方法来实现这一点?代码是否可以简化以提高效率

$("#test").load("/events/cal-page/");
$("#catbox li").prepend("<input type=\"checkbox\"  style=\"display:none;\">  ");
$('.cat-item a').attr("href", "#")
$('.cat-item a').click(function() {
    $(this).prev().click();
    $(this).toggleClass("selected");
    //$(this).closest('a').find('[type=checkbox]').click();
});

$(":checkbox").change(function() {
    var values = $('input:checkbox:checked').map(function() {
        var bob = $(this).parent().attr('class');
        var bob = bob.replace(/[^0-9]/gi, ''); // Replace everything that is not a number with nothing
        var number = parseInt(bob, 10); // Always hand in the correct base since 010 != 10 in js    

        if (number == '2') {
            number = "5,6,7,8,13";
        } else if (number == '3') {
            number = "9,10,11,12";
        }
        //alert(number);    
        return number
    }).get();
    //alert(values);
    $("#test").load("/events/cal-page/?q=" + values + "");
});
$(“#测试”).load(“/events/cal page/”);
$(“#catbox li”)。前置(“”);
$('.cat项目a').attr(“href”,“#”)
$('.cat项目a')。单击(函数(){
$(this.prev()。单击();
$(此).toggleClass(“选定”);
//$(this).closest('a')。查找('[type=checkbox]')。单击();
});
$(“:复选框”).change(函数(){
var值=$('input:checkbox:checked').map(函数(){
var bob=$(this.parent().attr('class');
var bob=bob.replace(//[^0-9]/gi,”);//将不是数字的所有内容都替换为零
var number=parseInt(bob,10);//在js中,始终提交正确的基数,因为010!=10
如果(数字='2'){
number=“5,6,7,8,13”;
}else if(数字='3'){
number=“9,10,11,12”;
}
//警报(编号);
返回号码
}).get();
//警报(数值);
$(“#测试”).load(“/events/cal page/?q=“+values+”);
});

您使用的是引导吗?相反,您可以使用jquery AJAX,甚至可以中止以前发出的请求,只显示当前请求的结果。暂时禁用按钮可能会更容易些。您可以向按钮添加加载旋转,并在单击时显示它(禁用按钮),然后在一段时间后使用
window.setTimeout()
再次启用它。通过这种方式,用户知道他的操作已被记录并正在被处理