Запустить скрипт из скрипта
Подскажите есть скрипт который скрывает 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, время: 18:27. |