为什么我的代码只有部分功能正常?

时间:2015-07-03 23:04:38

标签: javascript jquery html

此代码的一部分正在运行,另一部分则不运行。我自己无法弄清楚这个问题......

这是我的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 userframe 的display:none。我只把相关部分放在代码中。

entrylogger 的切换功能正常。但我不明白为什么 userframe frameselection 的切换不起作用。

2 个答案:

答案 0 :(得分:1)

if 语句中,

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

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

答案 1 :(得分:0)

看起来我的代码处于完美状态(好吧,不完美,但它检查出来),因为它可以完成我想要的技巧。我的问题,似乎是在页面的头部包含外部JavaScript工作表。虽然这并没有回答一部分是如何运作而另一部分没有运作的,但我想我可以从现在开始解决问题。谢谢大家参与我的谦虚问题。