javascript - Ist die Callback-Funktion falsch geschrieben?
我想大声告诉你
我想大声告诉你 2017-05-19 10:44:22
0
4
924
function GetOrderList(tabIndex, dirc,callback) {
    var direction = 1, startNum = 0;
    if (tabIndex == 1) {
        if (handle1 == 1) {
            startNum = startMaxNum1;
            direction = 2;
        }
        else
            startNum = startMinNum1;
    }
    else if (tabIndex == 2) {
        if (handle2 == 1) {
            startNum = startMaxNum3;
            direction = 2;
        } else {
            startNum = startMinNum2;
        }
    } else if (tabIndex == 3) {
        if (handle3 == 1) {
            startNum = startMaxNum3;
            direction = 2;
        }
        else
            startNum = startMinNum3;
    } else {
        if (handle4 == 1) {
            startNum = startMaxNum4;
            direction = 2;
        }
        else
            startNum = startMinNum4;
    }
    if (dirc == 2) {
        direction = 2;
        startNum = 0;
    }
    $.post('/order/GetOrderListByCondition', {
        keyWord: $.trim($("#txtSearch").val()), tabIndex: tabIndex, direction: direction, startNum: startNum
    }, function (data) {
        if (data != null) {
            if (direction == 2) {
                $("#pOrder" + tabIndex).html("");
            }
            if (data.Orders.length >= 1) {
                if (direction == 1) {
                    if (tabIndex == 1) {
                        if (startMaxNum1 == 0) {
                            startMaxNum1 = data.Orders[0].Id;
                        }
                        startMinNum1 = data.Orders[data.Orders.length - 1].Id;
                    } else if (tabIndex == 2) {
                        if (startMaxNum2 == 0) {
                            startMaxNum2 = data.Orders[0].Id;
                        }
                        startMinNum2 = data.Orders[data.Orders.length - 1].Id;
                    } else if (tabIndex == 3) {
                        if (startMaxNum3 == 0) {
                            startMaxNum3 = data.Orders[0].Id;
                        }
                        startMinNum3 = data.Orders[data.Orders.length - 1].Id;
                    } else if (tabIndex == 4) {
                        if (startMaxNum4 == 0) {
                            startMaxNum4 = data.Orders[0].Id;
                        }
                        startMinNum4 = data.Orders[data.Orders.length - 1].Id;
                    }
                } else {
                    if (tabIndex == 1) {
                        if (startMinNum1 == 0) {
                            startMinNum1 = data.Orders[data.Orders.length - 1].Id;
                        }
                        startMaxNum1 = data.Orders[0].Id;
                    } else if (tabIndex == 2) {
                        if (startMinNum2 == 0) {
                            startMinNum2 = data.Orders[data.Orders.length - 1].Id;
                        }
                        startMaxNum2 = data.Orders[0].Id;
                    } else if (tabIndex == 3) {
                        if (startMinNum3 == 0) {
                            startMinNum3 = data.Orders[data.Orders.length - 1].Id;
                        }
                        startMaxNum3 = data.Orders[0].Id;
                    } else if (tabIndex == 4) {
                        if (startMinNum4 == 0) {
                            startMinNum4 = data.Orders[data.Orders.length - 1].Id;
                        }
                        startMaxNum4 = data.Orders[0].Id;
                    }
                }
                $(data.Orders).each(function (i) {
                    var orderstrs = "<a href='/order/ordersdetail?orderid=" + data.Orders[i].Id + "&PassKey=" + data.Orders[i].PassKey + "' class='linkDetail'><p class='listBox'> <p class='orderHeader'><ul><li><img src='/images/list.png'></li><li>订单号:<span data-name='orderCode' class='orderCode'>" + data.Orders[i].OrderCode + "</span></li></ul><span class='orderTime' data-name='orderTime'>" + ToJavaScriptDate(data.Orders[i].OrderTime) + "</span></p>";
                    if (data.OrdersDetail.length >= 1) {
                        var details = Enumerable.From(data.OrdersDetail).Where("x=>x.OrderId==" + data.Orders[i].Id).ToArray();
                        if (details != null && details.length >= 1) {
                            orderstrs += "<p class='orderContent'>";
                            $(details).each(function (j) {
                                var img = "";
                                if (details[j].Images != null && details[j].Images != "") {
                                    img = $.trim(details[j].Images).split(" ")[0];
                                }
                                else {
                                    img = "/Images/default_list_100_100.png";
                                }
                                orderstrs += "<p class='orderDetailBox'><img class='productImg' src='" + img + "'></span><span class='giftIcon'>" + (details[j].IsGift ? "<img src='/Images/zeng.png'/>" : "") + "</span><span class='productName' data-name='productName'>" + details[j].ProductName + "</span><ul><li>¥<span class='unitPrice' data-name='unitPrice'>" + details[j].UnitPrice + "</li><li>×<span class='num' data-name='num'>" + details[j].Num + "</span></li></ul></p>";
                            });
                        }
                        orderstrs += "</p>";
                    }
                    orderstrs += "<p class='statis'><ul><li>共<span class='productCount' data-name='productCount'>" + data.Orders[i].ProductCount + "</span>件商品</li><li>合计:¥<span class='payAmount' data-name='payAmount'>" + data.Orders[i].PayAmount + "</span></li></ul></p></p></a><p class='handle'>";
                    if (tabIndex == 2) {
                        orderstrs += "<button class='btn-primary' id='btnconfirm" + data.Orders[i].Id + "' onclick='confirmorder(" + data.Orders[i].Id + ",\"" + data.Orders[i].PassKey + "\")'>确认收货</button>";
                    }
                    if (tabIndex != 1) {
                        orderstrs += "<button class='btn-default'><a href='tel: " + data.Orders[i].PhoneNumber + "'>联系配送工</a></button>";
                    }
                    orderstrs += "<button class='btn-default'><a href='tel: " + data.Orders[i].MemberPhoneNumber + "'>联系业务员</a></button>";
                    $("#pOrder" + tabIndex).append(orderstrs + "</p>");
                });
            }
        }
        requestf5.style.opacity = 0;
        myScroll.refresh();
    });
    callback();
}

 GetOrderList(tabIndex,1,function () {
                   var activeHight = $(".swiper-slide").eq(swiper.activeIndex).height();
                  var containerHight = parseFloat($("#wrapper").height()) ;
                 if (activeHight <= containerHight)
                     activeHight = containerHight;
                $(".swiper-container").height(activeHight);
            });

Was ist los? Fehlerbericht: Rückruf ist keine Funktion

我想大声告诉你
我想大声告诉你

Antworte allen(4)
淡淡烟草味

function () {

               var activeHight = $(".swiper-slide").eq(swiper.activeIndex).height();
              var containerHight = parseFloat($("#wrapper").height()) ;
             if (activeHight <= containerHight)
                 activeHight = containerHight;
            $(".swiper-container").height(activeHight);
        }拿出来写试试,函数传参传的是值
洪涛

把错误信息发出来看看.或者在函数头部把callback log出来看看.

Ty80

理解与使用Javascript中的回调函数

如 @sunshine999 所说,把callback()在外面定义,再将其作为参数传递给GetOrderList

function callback() {
   var activeHight = $(".swiper-slide").eq(swiper.activeIndex).height();
   var containerHight = parseFloat($("#wrapper").height()) ;
   if (activeHight <= containerHight)
       activeHight = containerHight;
       $(".swiper-container").height(activeHight);
}
            
GetOrderList(tabIndex,1,callback); 

在执行之前确保回调函数是一个函数
在调用之前检查作为参数被传递的回调函数确实是一个函数,这样的做法是明智的。同时,这也是一个实现条件回调函数的最佳时间。

function GetOrderList(tabIndex,dirc,callback){
...
     //确保callback是一个函数    
    if(typeof callback === "function"){
        //调用它,既然我们已经确定了它是可调用的
          callback(options);
    }
}

我这回答最上面贴的那篇文章讲的很详细了。

伊谢尔伦

试下`
callback = function(){
var activeHight = $(".swiper-slide").eq(swiper.activeIndex).height();
var containerHight = parseFloat($("#wrapper").height()) ;
if (activeHight <= containerHight)

   activeHight = containerHight;
   $(".swiper-container").height(activeHight);

}
`

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage