繁体   English   中英

jQuery Ajax调用在If语句中不起作用

[英]JQuery Ajax call not working in If statement

为什么我的Ajax调用无法在if语句中起作用? 我在这里可能做的是根本上错误的事情,因为我对JS或Ajax经验不足。 谢谢

起作用的js函数是:

function filter(varType, varValue) {
    var $products = $('#products');

    $.getJSON($SCRIPT_ROOT + '/filterSize/' + varValue)

    .success(function (data) {
        $products.empty(); // clear html from container
        var elt0 = '<div class="page-content"><h1 id="shoes">Shoes</h1></div>';
        $products.append(elt0);

        if (Object.keys(data.shoes).length === 0) {
            none = '<span class="noresults">No results</span>';
            $products.append(none);
        }

        else {
            var numItems = (Object.keys(data.shoes).length);
            for (index = 0; index < numItems ; ++index) {
                var elt1 = Flask.url_for("static", {"filename": data.shoes[index].img1});
                var elt2 = '<div id="item" class="col-md-4"><div class="products"><a href="shop/item/' + data.shoes[index].id + '"><h5>' + data.shoes[index].name + '</h5><img src="' + elt1 + '" alt="" width="200px" height="125px"></a></div>';
                $products.append(elt2);
            }
        }
    });
}

但是,如果我要这样做,它突然停止工作:

function filter(varType, varValue) {
    var $products = $('#products');

    var x = 5
    var y = 6

    if (y > x) {
        $.getJSON($SCRIPT_ROOT + '/filterSize/' + varValue)
    }

    .success(function (data) {
        $products.empty(); // clear html from container
        var elt0 = '<div class="page-content"><h1 id="shoes">Shoes</h1></div>';
        $products.append(elt0);

        if (Object.keys(data.shoes).length === 0) {
            none = '<span class="noresults">No results</span>';
            $products.append(none);
        }

        else {
            var numItems = (Object.keys(data.shoes).length);
            for (index = 0; index < numItems ; ++index) {
                var elt1 = Flask.url_for("static", {"filename": data.shoes[index].img1});
                var elt2 = '<div id="item" class="col-md-4"><div class="products"><a href="shop/item/' + data.shoes[index].id + '"><h5>' + data.shoes[index].name + '</h5><img src="' + elt1 + '" alt="" width="200px" height="125px"></a></div>';
                $products.append(elt2);
            }
        }
    });
}

您过早关闭了if-语句的花括号:

if (y > x) {
    $.getJSON($SCRIPT_ROOT + '/filterSize/' + varValue)
//} <-- TOO EARLY
    .success(function (data) {
        ....
    });
} <-- SHOULD BE HERE INSTEAD

.success()回调之后结束if语句。

  if (y > x) {
            $.getJSON($SCRIPT_ROOT + '/filterSize/' + varValue)

        .success(function (data) {
            $products.empty(); // clear html from container
            var elt0 = '<div class="page-content"><h1 id="shoes">Shoes</h1></div>';
            $products.append(elt0);

            if (Object.keys(data.shoes).length === 0) {
                none = '<span class="noresults">No results</span>';
                $products.append(none);
            }

            else {
                var numItems = (Object.keys(data.shoes).length);
                for (index = 0; index < numItems ; ++index) {
                    var elt1 = Flask.url_for("static", {"filename": data.shoes[index].img1});
                    var elt2 = '<div id="item" class="col-md-4"><div class="products"><a href="shop/item/' + data.shoes[index].id + '"><h5>' + data.shoes[index].name + '</h5><img src="' + elt1 + '" alt="" width="200px" height="125px"></a></div>';
                    $products.append(elt2);
                }
            }
        });
}

这是有效的语法。 您需要在圆括号内移动.success。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM