在另一个<script>块</script>中检查JS变量值

时间:2009-10-13 22:36:20

标签: javascript jquery scripting

我有一个用简单模板构建的网站; header.tpl,navigation.tpl,body_home.tpl,body_about.tpl,body_anotherpage.tpl等.navigation.tpl包含jQuery,用于动态构建下拉导航菜单。在第一个下拉菜单中单击元素时,将根据单击的元素构建下一个元素。在某些时候,没有更多的下降并且设置了变量,例如:var action =“dropdowncomplete”。现在,在body _ * .tpl模板文件中,当动作===“dropdowncomplete”的计算结果为true时,会运行更多的jQuery。但是,我不知道如何使用jQuery(也不是JS)进行此检查。这是一段简化的代码来说明它是如何工作的:

/* header.tpl (<head>) - setting this global variable */
var action = null;

/* navigation.tpl - for simplicity's sake, when link is clicked, the var is set */
$(document).ready(function() { 
$('a').live('click', function() { 
action = "dropdowncomplete"; 
}); }); 

/* body_*.tpl - this should be executed when the var is set, in this case when a link is clicked */
if(action === "dropdowncomplete") {
// do something
}

请注意,以上所有3段JS / jQuery代码都在不同的脚本块中!

感谢。

2 个答案:

答案 0 :(得分:5)

我认为你误解了每个&lt; script&gt;块是一个单独的范围。事实并非如此。如果上面的代码示例准确反映了您的实际代码,那么它应该可以工作,因为action是全局声明的,因此赋值正在改变全局,测试正在检查全局。

如果它不起作用,可能是因为你已经建立了一些上面没有显示的其他范围,比如把var action = null位放在一个函数中。

答案 1 :(得分:0)

我会在html中使用隐藏的输入来存储值