setTimeout не работает с jquery - PullRequest
5 голосов
/ 16 июля 2010

У меня есть расширенная функция jquery, которая прекрасно работает, но когда я передаю ее через setTimout, она не ждет указанного периода и сразу же запускается.

jQuery(document).ready(function($) {    
  setTimeout($.mainmenuslider({
    trigger:'close'
  }),6000);  
});

Любые идеи ???

Ответы [ 3 ]

15 голосов
/ 16 июля 2010

Вам нужно передать анонимный метод, чтобы сделать то, что вы хотите, например:

jQuery(function($) {    
    setTimeout(function() {
      $.mainmenuslider({
        trigger:'close'
      });
    }, 6000);    
});

В противном случае вы пытаетесь передать результат функции (чтобы она выполнялась немедленно и ничего не выполнялась позже).

8 голосов
/ 16 июля 2010

Вы вызываете функцию прямо там, когда вы пытаетесь установить тайм-аут, чтобы произойти позжеВместо:

jQuery(function($) {
  setTimeout(function() {
    $.mainmenuslider({trigger:'close'});
  }, 6000);
});
2 голосов
/ 16 июля 2010

Попробуй это !!

jQuery(document).ready(function($) {    
  setTimeout("$.mainmenuslider({
    trigger:'close'
  })",6000);  
});

при использовании setTimeout () всегда пытайтесь указать действие, которое нужно вызывать в кавычках.

Ex:

setTimeout("call_this_function()", 4000);
...