javascript中的javascript切换不按预期工作

时间:2016-12-11 22:30:46

标签: javascript jquery html

我有一个按钮,只需使用javascript即可打开和关闭iframe。

但是当我点击按钮而不是iframe消失时,该按钮也会随着iframe一起消失。

在检查firebug控制台时,按钮的CSS也会将显示参数更改为' none'。

$(document).ready(function(){

    var iDiv = document.createElement('div');
    iDiv.id = 'enigma';
    iDiv.setAttribute("style", "font-size:18px;position:fixed;bottom:20px;right:5px;display:inline");
    document.body.appendChild(iDiv);

    var div = document.createElement("div");
    div.innerHTML = '<iframe src="http://example.com/index.html" width="400" height="200" style="border:0"></iframe>';
    iDiv.appendChild(div);

    var div2 = document.createElement("div");
    div2.setAttribute("style","display:inline;");
    div2.innerHTML = '<button id="button2">Show/Hide</button>';
    document.body.appendChild(div2);

    setTimeout(function() {
        $("#button2").css({"position": "fixed", "display": "inline", "bottom": "0", "right": "0"}).click(function(){
            $("div").toggle('show');
        });
    }, 100);
});

3 个答案:

答案 0 :(得分:2)

单击该按钮时,运行

$("div").toggle('show');

切换页面中的所有div。这包括包含按钮的那个。您可以将id添加到要隐藏的div中以使其正常工作:

var div = document.createElement("div");
div.id = "to-toggle";
...
setTimeout(function() {
    $("#button2").css({"position": "fixed", "display": "inline", "bottom": "0", "right": "0"}).click(function(){
        $("#to-toggle").toggle('show');
    });
}, 100);

答案 1 :(得分:1)

$("div").toggle('show');切换所有 <div>元素。

也许你想要

$("iframe").toggle('slow');

或者更具体一点,根据Iluvatar's answer

向您尝试控制的元素添加id

答案 2 :(得分:0)

你需要在这里更具体......

$("div").toggle();

您目前定位每个div标记。