Jquery正在消失div问题

时间:2014-04-29 06:03:47

标签: jquery html css

请参阅此小提琴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();
    });
});

3 个答案:

答案 0 :(得分:2)

您的第二个条件需要使用$(e.target)代替e.target。您还可以在条件中删除一些冗余括号()

if(!$(e.target).is('#aaa') && !$(e.target).is('#bbb'))   {
// -----                         ^ here you need to use $(e.target) not $(target)

更新小提琴:http://jsfiddle.net/V7uc7/4/

答案 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();
    });
});

Demo

答案 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();
    }
});

jsfiddle_demo