如何增加全局变量?

时间:2012-02-29 03:14:54

标签: jquery

我有fiddle

这是我的JS:

$(document).ready(function() {

    window.qNum = 0;
    window.$oClone = $('#pq0').clone();      

    addForm();
});


$('.addForm').live('click', function addForm() {   
    var $clone = $oClone.clone().attr('id', 'pq' + qNum + 1);
    // insert the new element after the last "duplicatable" input field
    $('#pq' + qNum).after($clone);
});

我试图将我的变量'qNum'增加到我的函数'addForm'的末尾。 这将增加ID,以便我可以在以后的项目中更轻松地找到内容。

我想添加一个++ qNum;在函数的最后但它正在破坏脚本,如果我添加它将无法运行。

Here是我的测试,不适用于更改。

2 个答案:

答案 0 :(得分:1)

var qNum = 0;

$(document).ready(function() {

    window.$oClone = $('#pq0').clone();      

    addForm();
});


$('.addForm').live('click', addForm);

function addForm() {
    var appendTo = $('#pq' + qNum);
    qNum += 1;

    var $clone = $oClone.clone().attr('id', 'pq' + qNum);
    // insert the new element after the last "duplicatable" input field
    appendTo.after($clone);
}​

在文档就绪调用之外声明您的qNum。然后++增加它以正确跟踪。另外,将clickForm移动到click侦听器之外并像这样调用它。希望它有所帮助。

将此粘贴​​到您的小提琴中。它会起作用。

答案 1 :(得分:0)

您正在另一个函数的范围内声明您的函数。这意味着在click事件之外,该函数不存在。

$('.addForm').live('click', function addForm() {   
    var $clone = $oClone.clone().attr('id', 'pq' + qNum + 1);
    // insert the new element after the last "duplicatable" input field
    $('#pq' + qNum).after($clone);
});​

做这样的事情会有所帮助:

function addForm() {   
        var $clone = $oClone.clone().attr('id', 'pq' + qNum + 1);
        // insert the new element after the last "duplicatable" input field
        $('#pq' + qNum).after($clone);
    }
$('.addForm').live('click', addForm);​