需要帮助在jQuery中的两个函数之间传递变量

时间:2010-11-28 15:24:31

标签: javascript jquery variables

这对许多人来说应该是一个简单的问题!

背景: 我在使用jQuery库在javascript中的两个函数之间传递变量时遇到了困难。

下面是我正在处理的脚本,它根据workSnippet的索引动态加载内容。顶级功能有效。第二个功能不起作用。没有给出警报,因为portfolioCount变量似乎不存在。

我的问题: 如何在两个函数之间传递变量,以便在单击“下一个”时,我可以提醒portfolioCount?

由于

// set global variable 
var portfolioCount = 0;

// begin on document ready
       $(document).ready(function() {
 // Return the value of the index of workSnippet when clicked and load related content

$(".workSnippet").click(function () {

    //set variable portfolioCount based on index

    var portfolioCount = $(".workSnippet").index(this);

    //load content based on portfolioCount

    $('#work #cycle' + portfolioCount).load("ajax-content/ajax-content.php #portfolioImage" + portfolioCount);

    // when loaded, run animation functions 

    $("#work").ajaxComplete(function(){

        setTimeout(invokeMultipleCycle, 200);

        showWork();
        $('#work').cycle(portfolioCount);
        $('#blurbs').cycle(portfolioCount);

        return portfolioCount;
    });

});

// return cycle value when 'next' is clicked

$('#next').click(function () {

    alert(portfolioCount);
});

});

4 个答案:

答案 0 :(得分:2)

在函数之外声明全局:

var portfolioCount=0;

然后从此行中删除'var'关键字:

var portfolioCount = $(".workSnippet").index(this);

/ SIM

答案 1 :(得分:0)

portfolioCount声明为全局变量。
替代地

  $('#next').click(function () {
        var item = $(".workSnippet");
        var portfolioCount=$(".workSnippet").index(item);
        alert(portfolioCount);
    });

答案 2 :(得分:0)

您可以将其保存在全局javascript变量中

答案 3 :(得分:0)

您要两次声明portfolioCount。 $('。worksnippet')中的portfolioCount。click()回调是所述回调范围内的一个完全不同的变量。尝试从click回调的portfolioCount分配中删除'var'关键字,它应该使用全局关键字。