我有两个函数,我想在第一个函数完成后调用一个函数。
我这样写:
$(document).ready(function () {
FetchProducts('@Model.ProductId', function () {
SimilarProducts('@Model.Class.Group.SectionId', '@Model.ProductId', '@TempData["Min"]', '@TempData["Max"]');
});
});
FetchProducts
函数运行一个ajax调用,该调用将填充TempData["Min"]
和TempDate["Max"]
并返回产品列表。SimilarProducts
希望通过最小和最大另一个ajax请求来获得一些相似的产品。 FetchProducts
运行正常,但SimilarProducts
未运行。有什么问题?
更新
这是
FetchProducts
函数:function FetchProducts(productId) {
$.getJSON("/product/jsonproducts", { productId: productId }, function (data) {
var i = 0;
$(".section-items-details").empty();
for (var i = 0; i < data.length; i++) {
...
}
});
}
这是
SimilarProducts
函数:function SimilarProducts(sectionId,productId, minimum, maximum) {
$.getJSON("/product/getsimilarproducts", { sectionId: sectionId, productId: productId, min: minimum, max: maximum }, function (data) {
var i = 0;
for (var i = 0; i < data.length; i++) {
...
}
});
}
最佳答案
哦,好的,自您更新后,我可以告诉您错误在哪里:)
因此,谈谈您的“FetchProducts”功能:
function FetchProducts(productId) {
$.getJSON("/product/jsonproducts", { productId: productId }, function (data) {
var i = 0;
$(".section-items-details").empty();
for (var i = 0; i < data.length; i++) {
...
}
});
}
如我们所见,您的'FetchProducts'函数仅接受一个参数,但是在他的调用中,您添加了一个匿名函数。
为了使其正常工作,您应该像这样编辑“FetchProducts”函数:
function FetchProducts(productId, callback) {
$.getJSON("/product/jsonproducts", { productId: productId }, function (data) {
var i = 0;
$(".section-items-details").empty();
for (var i = 0; i < data.length; i++) {
...
}
...
// Everything is ok, let's call our callback function!
if ($.isFunction(callback)) callback();
});
}