Запустить скрипт из скрипта
Подскажите есть скрипт который скрывает div при клике вне его.
И он запускается при клике на ссылку. Подскажите как его запустить из другого скрипта, без клика по ссылке. Вот что есть: <a href="#" id="city">Show message</a> <div id="message" style="display:none">123</div> <script src="http://code.jquery.com/jquery-latest.js"></script> <script> $('#city').click(function(e) { var $message = $('#message'); if ($message.css('display') != 'block') { $message.show(); var firstClick = true; $(document).bind('click.myEvent', function(e) { if (!firstClick && $(e.target).closest('#message').length == 0) { $message.hide(); $(document).unbind('click.myEvent'); } firstClick = false; }); } e.preventDefault(); }); </script> И есть другой скрипт из которого надо запустить данный скрипт: <script> function Load(){ timer=0; o=getObj('info'); ajaxLoad('info', '/api.php?city_name='+ot, '','',''); o.style.visibility='visible'; тут мне надо запустить скрипт (назовем его Go();) } </script> Пишу так, но не работает <script> function Go(e) { var $message = $('#message'); if ($message.css('display') != 'block') { $message.show(); var firstClick = true; $(document).bind('click.myEvent', function(e) { if (!firstClick && $(e.target).closest('#message').length == 0) { $message.hide(); $(document).unbind('click.myEvent'); } firstClick = false; }); } e.preventDefault(); }; </script> <script> function Load(){ timer=0; o=getObj('info'); ajaxLoad('info', '/api.php?city_name='+ot, '','',''); o.style.visibility='visible'; Go(); } </script> |
Цитата:
|
Делаю так но не работает:
<a href="#" id="city">Show message</a> <div id="message">123</div> <script src="http://code.jquery.com/jquery-latest.js"></script> <script> function Go(e) { var $message = $('#message'); var firstClick = true; $(document).bind('click.myEvent', function(e) { if (!firstClick && $(e.target).closest('#message').length == 0) { $message.hide(); $(document).unbind('click.myEvent'); } firstClick = false; }); }; </script> <script> function Load(){ timer=0; o=getObj('info'); ajaxLoad('info', '/api.php?city_name='+ot, '','',''); o.style.visibility='visible'; Go(); } </script> |
Цитата:
Чего вообще собрался замастырить? |
У меня есть поле input где я ввожу буквы городов, и снизу div куда через ajax выводятся варианты городов.
Все отрабатывает как надо. Но мне надо что бы когда я жму на любое место кроме этого div (div id="message") то что бы div скрывался. Вот с эти проблема |
Цитата:
|
так и пытаюсь делать, function Load() - как раз отвечает за вывод городов.
в нее добавляю Go(); - обработчик закрытия div А дальше пытаюсь запустить Go где как раз будет проверка div, и если он открыт, и я жму не на него, то закрыть его. Но как это сделать у меня не получается:-( |
Цитата:
|
А обработчик я правильно навешиваю?
<script> function Go(e) { var $message = $('#message'); var firstClick = true; $(document).bind('click.myEvent', function(e) { if (!firstClick && $(e.target).closest('#message').length == 0) { $message.hide(); $(document).unbind('click.myEvent'); } firstClick = false; }); }; </script> |
djonA,
лучше использовать on и off |
Часовой пояс GMT +3, время: 10:35. |