2011-11-09 53 views
0

我想获得一个变量(当链接被点击时设置)到一个函数并显示为弹出。如何获得一个变量到一个函数?

如下所示的代码:

$('a#link1').click(function(e){ 
e.preventDefault(); 
    var value = 'true'; 
}); 


function exe(){ 
    alert(value); 
} 

在执行功能时,所有我得到的是值为undentified。

那么,任何人都知道解决它的方法?

+0

var value; $('#link1')... {value = true; } - 如果您使用的是ID选择器,则不需要指定元素名称 – Irishka

回答

4

变量具有范围,您可以在onclick关闭范围内定义value变量,并且不会在其外部访问变量。

下面将工作:

var value = false; //Define in the global scope 

$('a#link1').click(function(e){ 
e.preventDefault(); 
    value = false; //Use in a local-scope is legal. 
}); 

function doSomething() 
{ 
alert(value); 
} 

然而有许多全局变量会让你的项目难以维持,而且还有其他的更清洁的解决方案。一般我会建议你阅读编程合适的书虽然:)

+0

是的。发布的其他解决方案并不是最佳选择,因为您可以在不点击的情况下运行该功能并使其失败。在这里它被设置为默认值,所以它不会失败,即使它在点击之外运行:) –

+0

感谢TJHeuvel,它工作。 – sm21guy

+1

没问题,它很好,我可以帮你。但是,如果你认真对待网络开发,我强烈建议你通过购买适当的书继续学习。变量范围对编程至关重要,并且可能是一个难以理解的概念(特别是在那种叫做javascript的奇妙语言中)。 – TJHeuvel

0

只是使变量全球性的,或者更好的使用.data()“附加”它的元素:

$('a#link1').click(function(e) { 
e.preventDefault(); 
    $(this).data("value", "true"); 
}); 

然后你可随时查询此:

function exe() { 
    alert($('a#link1').data("value")); 
} 

注意,它是在jQuery的1.2.3加猜测,现在它并不真正的问题虽然。

+0

好的提示,谢谢你的帮助。 – sm21guy

相关问题