【问题标题】:How to use boolean in 2 functions in javascript如何在javascript的2个函数中使用布尔值
【发布时间】:2015-09-18 03:05:19
【问题描述】:
var anchor = document.querySelectorAll('button');
var menuOpen = false;

[].forEach.call(anchor, function(anchor) {


    anchor.onclick = function(event) {
        event.preventDefault();
        if (menuOpen == false) {
            this.classList.add('close');
            menuOpen = true;

        } else {

            this.classList.remove('close');
            menuOpen = false;

        }
    }
});

$('body').on("click", function(e) {


    if (menuOpen == true) {

        document.getElementById("cross").classList.remove('close');
        menuOpen = false;
    }
});

当前情况:当我点击菜单中的任何链接关闭菜单时。我的菜单关闭,但我的按钮仍显示“关闭”类。我想在页面上的任何点击中删除“关闭”类。如果菜单已关闭,还要检查布尔值。

不知何故,我的身体点击功能没有正确执行。检查并删除十字按钮。

【问题讨论】:

    标签: javascript jquery function button boolean


    【解决方案1】:

    不需要flag。您可以检查是否有任何button 具有close 类,如下所示。此外,将整个代码转换为使用jQuery

    查看代码中的内联 cmets。

    // On all button click
    $('button').on('click', function(e) {
        e.preventDefault();
        e.stopPropagation(); // Prevent event bubbling
    
        $(this).toggleClass('close'); // Toggle class 'close' of the clicked button
    });
    
    
    // On body click
    $('body').on('click', function() {
        if ($('button.close').length) { // Check if any button is having class 'close'
        // ^^^^^^^^^^^^^^^^^^^^^^^^^^
            $('#cross').removeClass('close'); // Remove 'close' class of '#cross'
        }
    });
    

    【讨论】:

    • 嗨 Tushar,不知何故,当我使用 chrome 在 iphone6 模拟器中预览时,它不起作用。这应该发生吗?实际上不仅仅是 iPhone 6。
    • @JamesTan 不要相信模拟器,它们只会为您提供与设备相同的分辨率
    • 您好 Tushar,我刚刚在真机上进行了测试,它确实无法正常工作。有什么解决方法吗?这些设备也可以使用?
    • 嗨 Tushar,它现在真的无法在任何设备上运行。仅适用于浏览器:(你有什么解决方法吗?
    • @JamesTan 您在控制台中看到任何错误吗?使用remote debugging 来调试您的问题。 developer.chrome.com/devtools/docs/remote-debuggingblog.idrsolutions.com/2015/02/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 2021-01-05
    • 1970-01-01
    相关资源
    最近更新 更多