在javascript中声明要在多个文件中使用的变量
我正在编辑一个网站。我有一个主页和一个第二页。在主页中,我希望有两个链接,都链接到同一个第二页。在secundary页面中,我隐藏了一个表单,当单击按钮时会显示该表单。我想在两个链接之间实现的区别是: -当用户单击第一个链接时,第二页会正常显示,表单隐藏(这已经在工作,单击按钮时,表单会显示,使用滑动切换功能)。 -当用户单击第二个链接时,会出现显示表单的第二个页面 我正在尝试使用javascript,尽管我有非常原始的知识,我的想法是在索引(主)页面中创建一个名为initia=0的变量,当用户单击第二个链接时,initia变为1。然后在辅助页面文件中重用该变量,只需检查initia是1还是0。但我认为它不是这样工作的。我该怎么做 我现在的代码虽然不起作用,但是:在javascript中声明要在多个文件中使用的变量,javascript,var,Javascript,Var,我正在编辑一个网站。我有一个主页和一个第二页。在主页中,我希望有两个链接,都链接到同一个第二页。在secundary页面中,我隐藏了一个表单,当单击按钮时会显示该表单。我想在两个链接之间实现的区别是: -当用户单击第一个链接时,第二页会正常显示,表单隐藏(这已经在工作,单击按钮时,表单会显示,使用滑动切换功能)。 -当用户单击第二个链接时,会出现显示表单的第二个页面 我正在尝试使用javascript,尽管我有非常原始的知识,我的想法是在索引(主)页面中创建一个名为initia=0的变量,当用户
//in the main page
<script type="text/javascript">
var inici = 0;
$(document).ready(function(){
$(".x").click(function()
{
inici = 2;
});});
</script>
//in the secundary page
<script type="text/javascript">
$(document).ready(function(){
$(".msg_body").hide();
$(".msg_head").click(function()
{
$(this).next(".msg_body").slideToggle();
});//until here normal behaviour
if (inici > 1) { //to check if it should b already opened
$(".msg_body").show();
inici = 0;
}});
</script>
//在主页中
var-inici=0;
$(文档).ready(函数(){
$(“.x”)。单击(函数()
{
inici=2;
});});
//在第二页
$(文档).ready(函数(){
$(“.msg_body”).hide();
$(“.msg_head”)。单击(函数()
{
$(this).next(“.msg_body”).slideToggle();
})//
如果(inici>1){//检查它是否已经打开
$(“.msg_body”).show();
inici=0;
}});
谢谢这不可能使用全局变量。您应该尝试使用,它链接到域。您可以将“表单隐藏”版本的链接如下:
page.html
page.html#form
$(document).ready(function(){
if(document.location.hash !== "#form") {
$(".msg_body").hide();
$(".msg_head").click(function()
{
$(this).next(".msg_body").slideToggle();
});
}
});
表格上显示的是这样的:
page.html
page.html#form
$(document).ready(function(){
if(document.location.hash !== "#form") {
$(".msg_body").hide();
$(".msg_head").click(function()
{
$(this).next(".msg_body").slideToggle();
});
}
});
(两个文件都使用相同的文件;第二个文件末尾有一些额外的内容)
然后让您的JavaScript如下所示:
page.html
page.html#form
$(document).ready(function(){
if(document.location.hash !== "#form") {
$(".msg_body").hide();
$(".msg_head").click(function()
{
$(this).next(".msg_body").slideToggle();
});
}
});
这意味着只有在URL中没有#form
的情况下访问页面时,表单才会被隐藏。无需使用任何inici
变量。这将不起作用(据我所知),因为当第二页上的Javascript开始运行时,主页上的Javascript停止运行。因此,虽然单击链接时inici确实会发生更改,但我相信第二个页面会看到一个新的inici实例,您将其初始化为0
我认为一个更有效的方法是,当你点击相应的链接后转移用户时,只需将一些数据发布到第二页。然后,第二页可以读取POST数据,并决定是否显示表单。F*完美,我想说。非常感谢:)我的问题已经解决了!!当窗体被显示时,如何自动地(向下)显示页面,以查看窗体在顶部的开始,而不是在屏幕的中间。我认为html中的某些东西只是使用了#,向表单添加
id=“form”
属性应该可以实现这一点。如果它已经有一个ID,您可以在上面的示例中使用该ID,而不是“form”。