我对以下代码有疑问。 用于切换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();
});
答案 0 :(得分:0)
&#34; ==&#34;与&#34; ===&#34;。
的行为略有不同identity(===)运算符的行为与equality(==)运算符完全相同,但不进行类型转换,并且类型必须相同才能被认为是相等的。
参考:Javascript教程:比较运算符
==运算符将在执行任何必要的类型转换后比较相等性。 ===运算符不会进行转换,因此如果两个值不是同一类型===将只返回false。在这种情况下,===会更快,并且可能会返回与==不同的结果。在所有其他情况下,表现将是相同的。
答案 1 :(得分:0)
感谢您的反馈
click事件的问题。 我在这些方法的底部插入了return false。
这似乎有效