Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 容器导航下拉列表的onClick问题(需要双击才能下拉)_Javascript_Html_Navigation_Onclick - Fatal编程技术网

Javascript 容器导航下拉列表的onClick问题(需要双击才能下拉)

Javascript 容器导航下拉列表的onClick问题(需要双击才能下拉),javascript,html,navigation,onclick,Javascript,Html,Navigation,Onclick,我的JS文件中的onClick函数有问题 当一个选项卡打开时,我尝试单击第二个链接,除非该链接被单击两次,否则新选项卡将不会打开。 以下是html代码: 这是JS $(document).ready(function() { document.menuIsOpen = false; $('.tabContainer > div').hide(); $('.tabContainer > div:first-of-type').hide(); $('.tabButt

我的JS文件中的onClick函数有问题 当一个选项卡打开时,我尝试单击第二个链接,除非该链接被单击两次,否则新选项卡将不会打开。 以下是html代码:


这是JS

$(document).ready(function() {
document.menuIsOpen = false;

$('.tabContainer > div').hide();
$('.tabContainer > div:first-of-type').hide();

$('.tabButton').click(function(event) {
    if (document.menuIsOpen == false) {
        document.menuIsOpen = true;
        event.preventDefault();

        $('.tabContainer > div').hide();
        $("#" + $(this).attr('data-openTab')).toggle("slow").css("display", "block");

        $('.tabButton').click(function(event) {

            $('.tabContainer > div').hide();
            $("#" + $(this).attr('data-openTab')).show().css("display", "block");
        });
    } else {
        document.menuIsOpen = false;
        event.preventDefault();
        $('.tabContainer > div').hide("slow");
        $('.tabContainer > div:first-of-type').hide("slow");

    }

    $('.closeButton').click(function(event) {
        event.preventDefault();

        $('.tabContainer > div').hide("slow");
        $('.tabContainer > div:first-of-type').hide("slow");
    });
});

$('.tabContainer > div').hide();
$('.tabContainer > div:first-of-type').hide();
});
我确信我的代码非常混乱,但是除了onClick问题之外,它的工作方式应该是正常的。 提前谢谢你

HTML:

<nav>
    <div id="navContainer">
        <ul>
            <li>
            <a href='' class='tabButton' data-openTab='1'>1</a>
            </li>
            <li>
            <a href='' class='tabButton' data-openTab='2'>2</a>
            </li>
            <li>
            <a href='' class='tabButton' data-openTab='3'>3</a>
            </li>
            <li>
            <a href='' class='tabButton' data-openTab='4'>4</a>
            </li>
            <li>
            <a href='' class='tabButton' data-openTab='5'>5</a>
            </li>
        </ul>
    </div>
    <div id = "tabCont" class="tabContainer">
        <div id="1">1
            <a href="" class="closeButton"> CLOSE </a>
        </div>
        <div id="2">2
            <a href="" class="closeButton"> CLOSE </a>
        </div>
        <div id="3">3
            <a href="" class="closeButton"> CLOSE </a>
        </div>
        <div id="4">4
            <a href="" class="closeButton"> CLOSE </a>
        </div>
        <div id="5">5
            <a href="" class="closeButton"> CLOSE </a>
        </div>
    </div>
</nav>

演示:

代码是否完整?它的形状似乎很奇怪!为什么要在onclick中创建另一个onclick?这可能就是问题所在。我添加了这一点,这样当单击另一个链接时,它会立即删除其他内容,而不是关闭第一个内容。
    document.menuIsOpen = false;
    $('.tabContainer > div').hide();
    $('.tabButton').click(function(event) {
        var
            open = $("#" + $(this).attr('data-openTab')),
            isOpened = open.is('.opened');

        event.preventDefault();
        if (document.menuIsOpen) {
            document.menuIsOpen = false;
            $('.opened').hide("slow").removeClass('opened');
        }
        if (!isOpened) {
            document.menuIsOpen = true;
            open.addClass('opened').show("slow").css("display", "block");
        }
    });
    $('.closeButton').click(function(event) {
        event.preventDefault();
        $('.opened').hide("slow").removeClass('opened');
    });