我有一个用简单模板构建的网站; 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代码都在不同的脚本块中!
感谢。
答案 0 :(得分:5)
我认为你误解了每个&lt; script&gt;块是一个单独的范围。事实并非如此。如果上面的代码示例准确反映了您的实际代码,那么它应该可以工作,因为action
是全局声明的,因此赋值正在改变全局,测试正在检查全局。
如果它不起作用,可能是因为你已经建立了一些上面没有显示的其他范围,比如把var action = null
位放在一个函数中。
答案 1 :(得分:0)
我会在html中使用隐藏的输入来存储值