2010-11-28 74 views
0

对于你们中的许多人来说,这应该是一个简单的问题!在jQuery中两个函数之间传递变量需要帮助

背景: 我很难在JavaScript中使用jQuery库在两个函数之间传递变量。

下面是我正在研究的一个脚本,它基于workSnippet的索引动态加载内容。顶层功能起作用。第二个功能不起作用。由于portfolioCount变量似乎不存在,因此没有提供警报。

我的问题: 如何在两个函数之间传递变量以便点击'next'时,我可以提醒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); 
}); 

}); 
+0

如果你`警报(portfolioCount) `在点击处理程序中分配它后,什么号码被警告?你的问题可能存在,而不是你的变量范围。 – strager 2010-11-28 16:36:21

+0

(另外,在这里,你的全局变量是从未被引用的。你确定你理解JavaScript关闭规则吗?) – strager 2010-11-28 16:36:49

+0

Nevermind;我误解了代码。我没有注意到代码滚动显示'$('#next')。click`回调。 – strager 2010-11-28 17:24:46

回答

2

声明全局因此,职能以外的:

var portfolioCount=0; 

然后从该行删除 '无功' 的关键字:

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

/SIM

0

申报portfolioCount为全局变量。
或者

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

我试图通过键入var portfolioCount = 0来声明portfolioCount为全局的;在所有函数之前的脚本顶部,但它总是在警报中给出'0'(当下一次被点击时)。我尝试了你的选择,但它不起作用,因为索引捕获点击,而不是元素。 – CarbonDry 2010-11-28 15:54:47

0

您可以在全球javascript变量

0

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