在jQuery中两个函数之间传递变量需要帮助
对于你们中的许多人来说,这应该是一个简单的问题!在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);
});
});
声明全局因此,职能以外的:
var portfolioCount=0;
然后从该行删除 '无功' 的关键字:
var portfolioCount = $(".workSnippet").index(this);
/SIM
申报portfolioCount
为全局变量。
或者
$('#next').click(function() {
var item = $(".workSnippet");
var portfolioCount=$(".workSnippet").index(item);
alert(portfolioCount);
});
我试图通过键入var portfolioCount = 0来声明portfolioCount为全局的;在所有函数之前的脚本顶部,但它总是在警报中给出'0'(当下一次被点击时)。我尝试了你的选择,但它不起作用,因为索引捕获点击,而不是元素。 – CarbonDry 2010-11-28 15:54:47
您可以在全球javascript变量
您声明portfolioCount两次保存。 $('。worksnippet')。click()回调中的portfolioCount是所述回调范围内的完全不同的变量。尝试从点击回调的portfolioCount分配中删除'var'关键字,并且它应该使用全局的关键字。
如果你`警报(portfolioCount) `在点击处理程序中分配它后,什么号码被警告?你的问题可能存在,而不是你的变量范围。 – strager 2010-11-28 16:36:21
(另外,在这里,你的全局变量是从未被引用的。你确定你理解JavaScript关闭规则吗?) – strager 2010-11-28 16:36:49
Nevermind;我误解了代码。我没有注意到代码滚动显示'$('#next')。click`回调。 – strager 2010-11-28 17:24:46