Неверно срабатывает 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. |
$('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(); }); }); }); Так работает? |
Нет, если не вешать one на body в callback SlideDown :) Решение в этом.
А за подсказку с one - спасибо ) |
Часовой пояс GMT +3, время: 07:18. |