我有两个功能,我希望在完成第一个功能后调用一个功能。
我写了这个:
$(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
想要通过min和max制作另一个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++) {
...
}
});
}
答案 0 :(得分:6)
哦,好了,因为你的更新我可以告诉你哪里出错:)
所以,谈谈你的'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();
});
}
答案 1 :(得分:2)
为什么您认为FetchProducts
会致电SimularProduction
。 FetchProducts
对第二个参数没有任何作用。
function FetchProducts(productId, then) {
$.getJSON("/product/jsonproducts", { productId: productId }, function (data) {
var i = 0;
$(".section-items-details").empty();
for (var i = 0; i < data.length; i++) {
...
}
then();
});
}