jquery&&运算符不起作用

时间:2014-12-19 10:49:42

标签: javascript jquery operators toggle show-hide

我对以下代码有疑问。 用于切换div的按钮。 在切换div中,有一些其他div和其他元素。

$(function () {
    $('#btn').click(function (e) {
        e.preventDefault();
        console.log('clicked toggle');
        $('#Popover').toggle();
        if ($('#Popover:visible').length == 0) {
            $('#Popover').hide();
        } else {
            $('#Popover').show();
        }
    });
});

$(document).on('click', function (e) {
    var container = $('#Popover');
    var trigger = $('#btn');

    if (($(e.target).closest(trigger).length === 0) && ($(e.target).closest(container).length === 0)) {
        container.hide();
    }
});

按钮可以切换div。当我在按钮/ togglediv外面点击时,togglediv会隐藏。

问题是当点击div也会隐藏的切换div中的div时。

似乎&&运算符不起作用或我的代码有其他错误。

也许这是一个回发问题 以下代码是切换div中div(div id =" hourInc")的onclick方法

 $('#hourInc').click(function (e) {
        e.preventDefault();
        var hour = $('#cn_TimeHour').val();
        if (hour < 12) {
            hour = (hour * 1) + 1;
        }
        else {
            hour = 0;
        }
        $('#cn_TimeHour').val(("0" + hour).slice(-2));
        setTime();
    });

2 个答案:

答案 0 :(得分:0)

&#34; ==&#34;与&#34; ===&#34;。

的行为略有不同

identity(===)运算符的行为与equality(==)运算符完全相同,但不进行类型转换,并且类型必须相同才能被认为是相等的。

参考:Javascript教程:比较运算符

==运算符将在执行任何必要的类型转换后比较相等性。 ===运算符不会进行转换,因此如果两个值不是同一类型===将只返回false。在这种情况下,===会更快,并且可能会返回与==不同的结果。在所有其他情况下,表现将是相同的。

答案 1 :(得分:0)

感谢您的反馈

click事件的问题。 我在这些方法的底部插入了return false。

这似乎有效