Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.04.2010, 21:02
Новичок на форуме
Отправить личное сообщение для Dastin Посмотреть профиль Найти все сообщения от Dastin
 
Регистрация: 28.04.2010
Сообщений: 2

Неверно срабатывает bind
Здравствуйте.
Почему не работает следующий код?
$().ready(function() {
			$('body')
			.append('<div id="pf_search" style="width:262px; border:1px solid grey;">Hello!</div>')
			.click(function(){
				$('#pf_search').hide();
				$('body').unbind('click');
			});
			$('#pf_name').click(function(){
				$('#pf_search').slideDown('fast');
				$('body').click(function(){
					$('#pf_search').hide();
					$('body').unbind('click');
				});
			});
		});

Первый клик на body обрабатывается. Следующий клик на pf_name раскрывает pf_search, но клик на body его уже не прячет. pf_search прячется только при клике на pf_name, xотя обработчик стоит на body.
Ответить с цитированием
  #2 (permalink)  
Старый 29.04.2010, 10:29
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

$('body').click(function(){$(this).unbind('click') }); -- говноидея.

$(function() {
    $('body').
        append('<div id="pf_search" style="width:262px; border:1px solid grey;">Hello!</div>').
        one('click', function(){
            $('#pf_search').hide();
        });

        $('#pf_name').click(function(){
            $('#pf_search').slideDown('fast');

            $('body').one('click', function(){
                $('#pf_search').hide();
            });
        });
});


Так работает?
Ответить с цитированием
  #3 (permalink)  
Старый 29.04.2010, 11:50
Новичок на форуме
Отправить личное сообщение для Dastin Посмотреть профиль Найти все сообщения от Dastin
 
Регистрация: 28.04.2010
Сообщений: 2

Нет, если не вешать one на body в callback SlideDown Решение в этом.

А за подсказку с one - спасибо )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не срабатывает обработчик window.onload. Alex82 Events/DOM/Window 16 22.02.2013 21:06
Содержимое bind m00 jQuery 4 10.11.2009 10:42
не назначается bind после unbind constantant jQuery 7 15.09.2009 13:59
Не срабатывает onkeyup afandi Events/DOM/Window 3 08.12.2008 20:33
Помогите новичку - onChange() не срабатывает serp Общие вопросы Javascript 2 01.08.2008 14:47