请参阅此小提琴fiddle
我想在这里有以下要求。
点击div' bbb'应该显示另一个div' aaa' ------工作
将diviu文本框集中在div' aaa'不应该消失div' aaa' ----工作
如果用户点击其他任何地方(除了div' aaa'和div' bbb')div' aaa'应该消失------不在这个时间点工作
请告知我最终要求。
Jquery代码
$(document).ready(function () {
$("#bbb").click(function () {
$('#aaa').show();
});
});
$(document).ready(function () {
$(document).click(function (e) {
if ((!$(e.target).is('#aaa')) && (!$(target).is('#bbb'))) {
$('#aaa').hide();
}
});
$("#aaa input").click(function (e) {
e.stopPropagation();
});
});
答案 0 :(得分:2)
您的第二个条件需要使用$(e.target)
代替e.target
。您还可以在条件中删除一些冗余括号(
和)
:
if(!$(e.target).is('#aaa') && !$(e.target).is('#bbb')) {
// ----- ^ here you need to use $(e.target) not $(target)
答案 1 :(得分:2)
将$(target)
更改为$(e.target)
,例如
if ((!$(e.target).is('#aaa')) && (!$(e.target).is('#bbb'))) {
$('#aaa').hide();
}
无需在click event
上添加#bbb
尝试此操作,
$(document).ready(function () {
$(document).click(function (e) {
if($(e.target).is('#bbb')) {
$('#aaa').show();
}
if ((!$(e.target).is('#aaa')) && (!$(e.target).is('#bbb'))) {
$('#aaa').hide();
}
});
$("#aaa input").click(function (e) {
e.stopPropagation();
});
});
答案 2 :(得分:0)
<强>&GT;嗨朋友请删除此
$(document).ready(function () {
$(document).click(function (e) {
if((!$(e.target).is('#aaa')) && ( !$(target).is('#bbb'))) {
$('#aaa').hide();
}
});
**& add this code**
$(document).ready(function () {
$(document).click(function (e) {
if((!$(e.target).is('#aaa')) && ( !$(e.target).is('#bbb'))) {
$('#aaa').hide();
}
});