javascript - Adakah fungsi panggil balik ditulis salah?
我想大声告诉你
我想大声告诉你 2017-05-19 10:44:22
0
4
928
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);
            });

Apa salahnya panggil balik laporan ralat bukan fungsi

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

membalas semua(4)
淡淡烟草味

fungsi () {

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

Siarkan mesej ralat dan lihat. Atau log panggilan balik di kepala fungsi dan lihat.

Ty80

Fahami dan gunakan fungsi panggil balik dalam Javascript

Seperti kata @sunshine999, letak 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); 

Pastikan fungsi panggil balik ialah fungsi sebelum melaksanakannya
Adalah bijak untuk menyemak sama ada fungsi panggil balik yang diluluskan sebagai hujah memang fungsi sebelum memanggilnya. Pada masa yang sama, ini juga masa terbaik untuk melaksanakan fungsi panggil balik bersyarat.

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

Artikel yang disiarkan di bahagian atas jawapan saya sangat terperinci.

伊谢尔伦

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

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

}
`

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan