2015-07-03 97 views
0

此代码的一部分工作,另一部分不工作。我无法弄清楚自己的问题......为什么只有我的代码的一部分功能?

这是我external.js

var framevar = document.getElementById("userframe"); 
var frametogg = false; 
var framesel = false; 
$(document).ready(function(){ 
    $('#filestext').click(function(){ 
     if(framevar.src != "test.txt"){ 
      framevar.src = "test.txt"; 
     } 
     if((frametogg === false) && (framesel === false)){ 
      $('#userframe').show(350); 
      frametogg = true; 
      $('#frameselection').show(350); 
      framesel = true; 
     }else if(frametogg === false){ 
      $('#userframe').show(350); 
      frametogg = true; 
     }else if(framesel === false){ 
      $('#frameselection').show(350); 
      framesel = true; 
     }else{ 
      $('#userframe').hide(350); 
      frametogg = false; 
      $('#frameselection').hide(350); 
      framesel = false; 
     } 
    }); 

    $('#uploadtext').click(function(){ 
     if(framevar.src != "uploadpage.php"){ 
      framevar.src = "uploadpage.php"; 
     } 
     if(frametogg === false){ 
      $('#userframe').show(350); 
      frametogg = true; 
     }else if((frametogg === true) && (framesel === false)){ 
      $('#userframe').hide(350); 
      frametogg = false; 
     } 
     if(framesel === true){ 
      $('#frameselection').hide(350); 
      framesel = false; 
     } 
    }); 

    $('#entryloggertitle').click(function(){ 
     $('#entrylogger').toggle(350); 
    }); 
}); 

这是我home.php

<div id="filesdiv"> 
<iframe id="userframe" src="uploadpage.php"></iframe> 
<select id="frameselection" multiple> 
<script>selectionTable();</script> 
</select></div> 

<span id="entryloggertitle">log.</span><br/> 
<span id="filestext">files</span><br/> 
<span id="uploadtext">upload</span><br/> 

<div id="entrylogger"> 
<form action="add.php" method="POST"> 
    p? <input type="checkbox" name="public[]" value="yes" checked/> 
    <input type="text" name="entry" size="12"/> 
    <input type="submit" value="push!" style="display:none;" /> 
</form> 
</div> 

在CSS文件中,entrylogger,frameselection and userframe has display:none。我只放了代码的相关部分。

切换功能entrylogger工作得很好。但我不明白为什么用户帧帧选择的切换不起作用。

+0

需要什么功能?用户框是否应该在初始页面加载时隐藏,然后在他们单击文件文本时显示? – MrMadsen

+0

@MrMadsen在执行时,框架应该是不可见的。应该在用户点击任一链接时显示。只有在单击文件文本时才应显示帧选择项目。当人重新点击时,框架应该消失。 – kittenparry

+0

它似乎在这个小提琴上工作:https://jsfiddle.net/u3bk7fvk/,除非我误解了这个问题。 – MrMadsen

回答

0

看来我的代码处于完美状态(当然,并不完美,但它会检查出来),因为它可以完成我想要的操作。我的问题,似乎是在页面的头部包含外部的javascript表单。尽管这并不能回答一部分是如何运作的,另一部分则不是,但我认为从现在开始我可以弄清楚一些事情。谢谢大家参与我的卑微的问题。

1

在这种如果声明,

if((frametogg === false) && (framesel === false)){ 
     $('#userframe').show(350); 
     frametogg = true; 
     $('#frameselection').show(350); 
     framesel = true; 

你说只显示如果frametogg和framese1都是假的,这是在页面加载时,因为这两个值都设置的情况下userframe和帧选择顶部为假。但是,您说在执行时希望它们不可见,所以此处用户框架和框架选择的代码应该使用hide方法。

+0

的脚本后面但是,如果条件发生在单击文件文本时。我的意思是,一旦用户点击文字而不是直接显示,他们就会变得可见。 – kittenparry

相关问题