2014-01-16 115 views
0

我正在编辑一个网站。我有一个主页和一个secundary页面。在主页面中,我想要有两个链接,都链接到相同的secundary页面。在secundary页面中,我隐藏了一个表单,当点击一个按钮时会出现。我想在两个链接之间实现的区别是: - 当用户点击第一个链接时,secundary页面正常显示,表单已隐藏(这已经在工作,并且单击该按钮时将显示表单,使用滑动功能)。 - 当用户点击第二个链接时,secundary页面出现显示表单。声明一个变量用于javascript中的多个文件中

我想要使用JavaScript,虽然我有非常非常原始的知识,我的想法是在索引(主)页面创建一个变量,称为初始= 0,并且当用户点击第二个链接时,为1.然后在辅助页面文件中重复使用这个变量,并且检查一下是否为1或者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> 

感谢

回答

0

您可以的链接“的形式隐藏”的版本是这样的:

page.html 

和一个与形式的表现是这样的:

page.html#form 

(都使用相同的文件;第二个只是在最后一些额外的东西)

然后你的JavaScript是这样的:

$(document).ready(function(){ 
    if(document.location.hash !== "#form") { 
     $(".msg_body").hide(); 
     $(".msg_head").click(function() 
     { 
      $(this).next(".msg_body").slideToggle(); 
     }); 
    } 
}); 

这意味着只有在URL中没有#form访问页面的情况下,表单才会被隐藏。无需使用任何inici变量。

+0

F *完美,我会说。非常感谢你:)我的问题已经解决了! – enpito

+0

我怎么会自动地在显示表单(#form)时向下滚动页面,以便在顶部看到表单的开始,而不是在屏幕的中间。在html中的东西只是使用#,我想? – enpito

+0

向表单添加一个'id =“form”'属性应该可以实现这一点。如果它已经有一个ID,那么你可以在上面的示例中使用该ID而不是“form”。 – JLRishe

0

这不会工作(据我的理解),因为当第二页上的Javascript开始运行时,主页面的Javascript停止运行。所以,虽然inici确实在链接被点击时发生了变化,但我相信第二页会看到一个新的inici实例,您将其初始化为0.

我认为更有效的方法是将一些数据简单地发布到第二个当你点击各自的链接后转移用户时,然后,第二页可以读取POST数据并决定是否显示表单。

相关问题