2014-12-19 56 views
0

我遇到以下一段代码的问题。 按钮切换一个div。 里面的切换div有一些其他的div和其他元素。jquery &&运算符不起作用

$(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。当我点击button/togglediv之外时,togglediv隐藏。

问题是什么时候点击切换div div div也隐藏。

它似乎是& &运算符不工作或是有我的代码有其他错误。

也许这是回发问题 下面的代码为一个div(DIV ID =“hourInc”)肘节的div

$('#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(); 
    }); 
+0

'&&'操作符根本不涉及jQuery。有条件有问题。尝试逐个调试它们。 – Unrealsolver 2014-12-19 10:53:47

+0

你能用html提供完整的问题演示吗? – Pavelloz 2014-12-19 11:09:37

+0

提供相关的HTML标记问题。 – 2014-12-19 11:10:31

回答

0

感谢您的反馈

单击事件的问题。 我插入返回false在这些方法的底部。

这似乎工作

0

内部的onclick方法中的“==”作用略有不同,以“ ===”。

标识符(===)运算符的行为与相等(==)运算符的行为相同,除非没有完成类型转换,并且类型必须相同才能被视为相同。

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

的==操作符会做任何必要的类型转换后相等比较。 ===运算符不会执行转换,所以如果两个值不是相同的类型===将简单地返回false。在这种情况下===会更快,并且可能返回与==不同的结果。在所有其他情况下,性能将是相同的。

+0

为什么呢? '.length'返回一个数字 – 2014-12-19 11:08:38

+0

如果javascript中使用.length属性,那么如果它们是不同的类型,那将是非常奇怪的。 – Pavelloz 2014-12-19 11:08:44