Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.03.2015, 13:59
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

Запустить скрипт из скрипта
Подскажите есть скрипт который скрывает 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>
Ответить с цитированием
  #2 (permalink)  
Старый 30.03.2015, 14:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от djonA
Подскажите как его запустить из другого скрипта, без клика по ссылке.
Возьми строки с 8 по 15...
Ответить с цитированием
  #3 (permalink)  
Старый 30.03.2015, 15:11
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

Делаю так но не работает:

<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>
Ответить с цитированием
  #4 (permalink)  
Старый 30.03.2015, 15:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от djonA
Делаю так
А что собственно ты тут делаешь? Ну пообъявлял кучу функций и все...

Чего вообще собрался замастырить?
Ответить с цитированием
  #5 (permalink)  
Старый 30.03.2015, 15:23
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

У меня есть поле input где я ввожу буквы городов, и снизу div куда через ajax выводятся варианты городов.

Все отрабатывает как надо.
Но мне надо что бы когда я жму на любое место кроме этого div (div id="message") то что бы div скрывался.

Вот с эти проблема
Ответить с цитированием
  #6 (permalink)  
Старый 30.03.2015, 15:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от djonA
снизу div куда через ajax выводятся варианты городов
Вот при очередном выводе городов проверяй, был ли уже обработчик закрытия того дива... Если не было - навешивай.
Ответить с цитированием
  #7 (permalink)  
Старый 30.03.2015, 15:31
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

так и пытаюсь делать, function Load() - как раз отвечает за вывод городов.

в нее добавляю Go(); - обработчик закрытия div

А дальше пытаюсь запустить Go где как раз будет проверка div, и если он открыт, и я жму не на него, то закрыть его.

Но как это сделать у меня не получается:-(
Ответить с цитированием
  #8 (permalink)  
Старый 30.03.2015, 15:45
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от djonA
function Load() - как раз отвечает за вывод городов.
В твоем "примере" ее никто не вызывает...
Ответить с цитированием
  #9 (permalink)  
Старый 30.03.2015, 16:00
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

А обработчик я правильно навешиваю?

<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>
Ответить с цитированием
  #10 (permalink)  
Старый 30.03.2015, 16:26
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

djonA,
лучше использовать on и off
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 компьютера 1 хром и 1 скрипт Megatron13 Opera, Safari и др. 1 21.07.2013 19:12
Как вывести дату, чтобы не повторять скрипт пару раз xXapokalypsesXx Общие вопросы Javascript 10 27.06.2013 13:43
не работают два jquery скрипта вместе SunYang Общие вопросы Javascript 1 03.09.2011 21:13
не могу запустить ни оди ява скрипт NickTriada Javascript под браузер 7 17.08.2009 13:25
Как запустить скрипт после отработки другого скрипта? roman2 Общие вопросы Javascript 2 10.08.2009 01:23