Jquery и скрыть div на клике - PullRequest
       13

Jquery и скрыть div на клике

0 голосов
/ 26 апреля 2010

У меня небольшая проблема с JQuery.

Ну, у меня есть и я хочу скрыть этот div, когда пользователь щелкает зону, которая не похожа на поведение "уведомлений" в Facebook.

Решение, которое я нашел, заключается в использовании метода jQuery.live (), но я думаю, что есть лучший способ сделать это.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 26 апреля 2010

Предполагая, что:

<div class="notification">You have 3 new messages</div>

использование:

$(document).click(function(evt) {
  if ($(this).closest("div.notification").length == 0) {
    $("div.notification").fadeOut();
  }
});

В основном это слушает все клики. Если получено сообщение, которого нет в разделе уведомлений, оно исчезает.

0 голосов
/ 26 апреля 2010

Попробуйте это:

$("#click_show_notif").live('click',function(e) {
    $("#show_notif").show();
    return false;
});

$('body').live('click',function(e) {
    if ($(this).closest("div#show_notif").length==0) {
        $("div#show_notif").hide();
    }
});
0 голосов
/ 26 апреля 2010

Спасибо за ваш ответ, но:

$(this).closest("div.notification").length == 0) 

всегда возвращает мне 0 (даже если я нажимаю в div), поэтому div всегда скрыт

Это мой код:

$(document).click(function(evt) {
        if ($(this).closest("div#show_notif").length==0)
            $("div#show_notif").fadeOut();
});

И HTML:

<div id="click_show_notif" onclick="$('div#show_notif').show();"><img src="http://'+STATIC_SERVER+'/images/notif.png" /><div id="show_notif"></div>

Есть что-то, что я забыл?

...