Ajax Double Code如何缩短它

时间:2014-12-17 09:35:22

标签: javascript jquery ajax

我希望你能帮助我,然后我就有问题了。 我有两个类似的jQuery.Ajax函数, 我只想在一个函数中做到这一点。 我真的不知道怎么做,我希望你能帮助我

这是我的两个ajax功能 这两个功能都很好。 那是我的第一个功能

//When the page loads it shows the three first ideas

var total = 3;
    var start = 0;
    var filterName = jQuery(".select-name-filter-selector-filterPersones").val();
    var filterStatus = jQuery(".select-status-filter-selector-filterStatus").val();
    var lines = jQuery("#ajouter").val();
    jQuery.ajax({
        type: "POST",
        url : "../scripts/ajaxSuggestions.php",
        data:{limit:total, name:filterName, status:filterStatus,
            start:start,lines:lines},
        success:function(data){
            jQuery("#content").append(data);
        }
    });

这是我的第二个功能。总之,我点击按钮显示更多它添加三个想法

//click ajax function that add 3 ideas to page
jQuery("#ajouter").click(function (){
        total += 3;
        start += 3;
        jQuery.ajax({
            type: "POST",
            url : "../scripts/ajaxSuggestions.php",
            data:{limit:total, name:filterName, status:filterStatus,
                start:start},
            success:function(data){
                jQuery("#content").append(data);
                if(total >= lines){
                    jQuery("#ajouter").hide();
                }
            }

        });
    });

我希望你能帮助我,为我糟糕的英语而烦恼。 :)

2 个答案:

答案 0 :(得分:1)

创建一个简单的函数

function ajaxCall(limit, filterName ,filterStatus ,type)
{
   jQuery.ajax({
            type: "POST",
            url : "../scripts/ajaxSuggestions.php",
            data:{limit:total, name:filterName, status:filterStatus,
                start:start},
            success:function(data){
                jQuery("#content").append(data);
                if(type == 1)
                {   

                   if(total >= lines){
                       jQuery("#ajouter").hide();
                  }
                }else {  jQuery("#content").append(data);
                }
            }

        });
}

现在基于您的电话

  

ajaxCall(limit,filterName,filterStatus,0)

进行第二次通话

 jQuery("#ajouter").click(function (){
         total += 3;
         start += 3;
        ajaxCall (limit,filterName,filterStatus,1)
     });
首先是

,或者你可以编写自己的逻辑

答案 1 :(得分:1)

//页面加载调用时

var total = 3;
var start = 0;
getSuggestion(total, start);

//点击按钮时

jQuery("#ajouter").click(function (){
        total += 3;
        start += 3;
        getSuggestion(total, start);
});

//功能定义

function getSuggestion(total, start)
{
    var filterName = jQuery(".select-name-filter-selector-filterPersones").val();
    var filterStatus = jQuery(".select-status-filter-selector-filterStatus").val();
    var lines = jQuery("#ajouter").val();

      jQuery.ajax({
            type: "POST",
            url : "../scripts/ajaxSuggestions.php",
            data:{limit:total, name:filterName, status:filterStatus,
                start:start},
            success:function(data){
                jQuery("#content").append(data);
                if(total >= lines){
                    jQuery("#ajouter").hide();
                }
            }

        });
}

如果每次下面的值没有不同,那么你也可以在页面加载时定义它,并在函数调用中作为参数传递

var filterName = jQuery(".select-name-filter-selector-filterPersones").val();
var filterStatus = jQuery(".select-status-filter-selector-filterStatus").val();
var lines = jQuery("#ajouter").val();