【问题标题】:error with javascript globals and jquery call back functionsjavascript 全局变量和 jquery 回调函数出错
【发布时间】:2010-12-02 05:21:22
【问题描述】:

我正在尝试创建一个值数组以检查该值之前是否已添加。

如果它显示了警报。 如果它还没有将它添加到数组中,则对服务器进行后 ajax 查询以检索相应的表行。

在谈到 javascript 时,我大多是新手,我发现它很难调试,因为语法错误会破坏整个脚本。

这是我的代码,如果有人看到错误,你能告诉我如何解决它。

如果你知道一个帮助调试 java 脚本的程序,那将是非常有帮助的。

我知道 jquery 调用工作正常,因为我在之后添加了数组检查。

var selectedProductsArray = new array();
var selectedProductsCount = 0;

$(function() {
    $('.selectProductID').live('click', function(event) {

        var count = 0;
        var found = false;
        while(count < selectedProductsCount)
        {
            if(selectedProductsArray[count] == $(this).val())
            {
                found = true;
                break;
            }
            count++;
        }

        if(found)
        {
            alert("you can only add one line for each product.");
        }else{
            selectedProductsArray[selectedProductsCount] = $(this).val();
            selectedProductsCount++;
            $.post("order/getitem", "ProductID="+$(this).val(), function(data){
                $("#orderItems tbody").append(data);
                selectedProductsCount++;
            });
        }
        return false;
    });
});

【问题讨论】:

    标签: javascript jquery arrays


    【解决方案1】:

    首先,没有“数组”类,所以我很惊讶你竟然通过了它;你想要的:

    var selectedProductsArray = new Array();
    

    var selectedProductsArray = [ ];
    

    另外,你不需要一遍又一遍地计算$(this).val(),你应该说:

    var count = 0;
    var found = false;
    var value = $(this).val();
    

    while 循环上方并在其余部分引用value 而不是$(this).val()。当我认为您只想执行一次时,您还增加了两次 selectedProductsCount,这将在您的 selectedProductsArray 中留下空/空条目,这可能会在以后混淆。

    我无法注意到任何其他明显的错误,但 new array() 应该是一个表演终结者。没有一个功能齐全的例子很难说。

    order/getitem 会被调用吗?它会发回任何东西吗?

    用于调试和尝试:

    【讨论】:

    • 耶稣你的权利。如此明目张胆的错误。 12 小时后,所有文字似乎都混在一起了,我什么也看不到。谢谢一百万。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多