如何替换函数参数?

发布于 2024-11-08 07:10:57 字数 2047 浏览 0 评论 0原文

我使用以下代码进行 ajax 调用,其中表单数据作为参数传递。

//ajax call
function restServiceCall(origin,destination,tripType,dateDepart,dateReturn){

    dataString = 'origin='+ origin + '&destination=' + destination + '&tripType='+tripType;

     $.jsonp({
          "url": flightURL,
          callbackParameter:jsonpCallBack,
          data: dataString,
    beforeSend:function(){$('#loadingdiv').show()},
           "success": function(data) {
                        if(data.error != null){
                            $('#errtitle').html('<h2 class="pgtitle">Error !! &nbsp;'+data.error+'</h2>').show();
                            $("#displaydiv,loadingdiv").hide();
                        }else{
                          renderData (data,dateDepart,dateReturn);
                      }
           },

            "error": function(xOptions, textStatus) {
               $('#errtitle').html('<h2 class="pgtitle">Sorry the service you are looking for is currently unavailable</h2>').show();
               $("#displaydiv,loadingdiv").hide();
           }
 });
}

除了从表单进行调用之外,我还在以下函数中使用它,其中我只需要传递 dateDepart/dateReturn 作为参数。

//for pagination
$('.pagenation a').bind('click',function(){
        var numDays = 7;
        var self = $(this);

        var dateTemp = self.parents(':eq(1)').attr('id')=="onewaytripdiv"? parseDate(dateDepart):parseDate(dateReturn);

        if(self.hasClass('left')){
            var tempDepDate = removeNumOfDays(dateTemp,numDays);
        }else{
            var tempDepDate = addNumOfDays(dateTemp,numDays);
        }
        var changedDate = tempDepDate.getDate()+' '+cx.monthNamesShort[tempDepDate.getMonth()]+' '+tempDepDate.getFullYear();
        if(self.parents(':eq(1)').attr('id')=="onewaytripdiv"){
            dateDepart = changedDate;
        }else{
            dateReturn = changedDate;
        }   
    restServiceCall(origin,destination,tripType,dateDepart,dateReturn);
});

我想删除函数调用中的参数,因为参数可能会有所不同。请建议一种传递参数的替代方案。

I'm using the following code to make ajax call where the form data is passed as params.

//ajax call
function restServiceCall(origin,destination,tripType,dateDepart,dateReturn){

    dataString = 'origin='+ origin + '&destination=' + destination + '&tripType='+tripType;

     $.jsonp({
          "url": flightURL,
          callbackParameter:jsonpCallBack,
          data: dataString,
    beforeSend:function(){$('#loadingdiv').show()},
           "success": function(data) {
                        if(data.error != null){
                            $('#errtitle').html('<h2 class="pgtitle">Error !!  '+data.error+'</h2>').show();
                            $("#displaydiv,loadingdiv").hide();
                        }else{
                          renderData (data,dateDepart,dateReturn);
                      }
           },

            "error": function(xOptions, textStatus) {
               $('#errtitle').html('<h2 class="pgtitle">Sorry the service you are looking for is currently unavailable</h2>').show();
               $("#displaydiv,loadingdiv").hide();
           }
 });
}

Besides making the call from form I also use it in the following function wherein I just need to pass either the dateDepart/dateReturn as params.

//for pagination
$('.pagenation a').bind('click',function(){
        var numDays = 7;
        var self = $(this);

        var dateTemp = self.parents(':eq(1)').attr('id')=="onewaytripdiv"? parseDate(dateDepart):parseDate(dateReturn);

        if(self.hasClass('left')){
            var tempDepDate = removeNumOfDays(dateTemp,numDays);
        }else{
            var tempDepDate = addNumOfDays(dateTemp,numDays);
        }
        var changedDate = tempDepDate.getDate()+' '+cx.monthNamesShort[tempDepDate.getMonth()]+' '+tempDepDate.getFullYear();
        if(self.parents(':eq(1)').attr('id')=="onewaytripdiv"){
            dateDepart = changedDate;
        }else{
            dateReturn = changedDate;
        }   
    restServiceCall(origin,destination,tripType,dateDepart,dateReturn);
});

I would like to remove the params in the function call, as the params may vary. Please suggest an alternative to pass the params.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北座城市 2024-11-15 07:10:57

传递一个参数数组怎么样?然后传递另一个值,例如整数,以向函数指示其参数数组中期望的内容。

例如

restServiceCall(myParams, 0);

How about passing an array of parameters instead? And then pass another value, such as an integer to indicate to the function what to expect in it's parameter array.

e.g

restServiceCall(myParams, 0);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文