代码之家  ›  专栏  ›  技术社区  ›  user470760

将JS函数从加载时移动到调用时

  •  0
  • user470760  · 技术社区  · 11 年前

    我有下面的JS函数,我已经使用了很长一段时间,几乎是逐字逐句地从另一个Stack Overflow问题中复制出来的。我发现,随着我的需求发生了变化,我需要从按钮调用这个函数,并将count的值作为参数传递,而不是在函数中跟踪它。

    我尝试将其更改为“function addInventory(count)”,并将var模板行移到其中,但Firebug报告var库存行的“SyntaxError:缺少变量名”,我无法找出问题所在。

    这有什么问题?

    原始功能:

    $(function()
    {
        var template = $('#inventoryItems .inventory:first').clone(),
            inventoryCount = 0;
    
        var addInventory = function()
        {
            inventoryCount++;
            var inventory = template.clone().find(':input').each(function()
            {
                var newLabel = "invItem[" + inventoryCount + "]";
                $(this).prev().attr('id', newLabel);
                $(this).prev().attr('name', newLabel);
            }).end()
            .attr('id', 'inv' + inventoryCount)
            .appendTo('#inventoryItems > fieldset');
        };
    
        $('.btnAddInventory').click(addInventory);
    });
    

    新功能:

    function addInventory(count)
    {
        var template = $('#inventoryItems .inventory:first').clone(),
    
        var inventory = template.clone().find(':input').each(function()
        {
            var newLabel = "invItem[" + count + "]";
            $(this).prev().attr('id', newLabel);
            $(this).prev().attr('name', newLabel);
        }).end()
        .attr('id', 'inv' + count)
        .appendTo('#inventoryItems > fieldset');
    };
    
    1 回复  |  直到 11 年前
        1
  •  0
  •   Gurminder Singh    11 年前

    您错过了 ; var模板 线改变

     var template = $('#inventoryItems .inventory:first').clone(),
    

     var template = $('#inventoryItems .inventory:first').clone();
    

    这将解决“SyntaxError:缺少变量名”的问题。