Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.06.2012, 18:25
Аспирант
Отправить личное сообщение для like2dev Посмотреть профиль Найти все сообщения от like2dev
 
Регистрация: 23.08.2010
Сообщений: 35

setTimeout не могу понять поведение
Здравствуйте, есть такой вот код, отрабатывает отлично алерт вызывается черзе 2 секунды:
$(document).ready(function(){
    $('#search').keyup(function() {
        setTimeout(function(){alert('fff')},2000);
    });
});​


http://jsfiddle.net/BR3j2/

И такой:
$(document).ready(function(){
    $('#search').keyup(function(e) {
        setTimeout(function($) {
            alert($.now());
        }(jQuery),2000);
    });
});​


http://jsfiddle.net/VQt7G/

В случае первого скрипта delay применяется, а во втором нет
Ответить с цитированием
  #2 (permalink)  
Старый 21.06.2012, 18:47
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

like2dev,
1. Нет библиотеки jQuery ко второму скрипту,
2. Воть эта запись
setTimeout(function($) {alert($.now());}(jQuery),2000);
абсолютна непонятно, что хотела выразить
Ответить с цитированием
  #3 (permalink)  
Старый 21.06.2012, 19:15
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от like2dev Посмотреть сообщение
В случае первого скрипта delay применяется, а во втором нет
во втором случае у Вас идет вызов функции-и он сразу срабатывает без задержки-а должна быть просто функция как в первом случае
Ответить с цитированием
  #4 (permalink)  
Старый 21.06.2012, 19:25
Аспирант
Отправить личное сообщение для like2dev Посмотреть профиль Найти все сообщения от like2dev
 
Регистрация: 23.08.2010
Сообщений: 35

Спасибо разобрался


$('#searchstring').keyup(function(e) {
            $('#searchstring').data('time',e.timeStamp);
            var time = e.timeStamp;
            var persik = function (time) {
                var obj = $("#searchstring");
                if(time == obj.data('time')) {
                    console.log('Ajax...');
                    $.ajax({
                        url: '/ajax.php',
                        dataType: 'html',
                        async: false,
                        type: "GET",
                        data: {type: "search_bar",searchstring: obj.val() },
                        success: function(response) {
                            var obj = $('#search_popup');
                            obj.html(response);
                        }
                    });
                }
            };

            setTimeout(function(){persik(time);},500);
    });
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу разобраться с setTimeout bazilio2010 Общие вопросы Javascript 3 14.01.2012 00:17
Наболевший this. Не могу понять Harvey Общие вопросы Javascript 6 19.08.2011 17:30
Не могу понять, почему не работает автокомпил в IE 8 gargon2008 jQuery 0 07.06.2011 11:31
RegExp - поиск в найденном. Не могу понять senseysensor Общие вопросы Javascript 9 17.10.2010 21:55
не могу понять в чём ошибка scuter Общие вопросы Javascript 2 28.08.2008 15:22