如何在页面加载时以及从另一个地方调用时执行JQuery函数

时间:2014-09-04 21:00:08

标签: jquery

我一直试图在jquery中制作幻灯片,其中图片会在页面加载后立即开始旋转,但是当有人在图片上方悬停时,幻灯片会暂停,然后在鼠标离开图像时继续播放。我试过这个:

function start_slideshow(){
    var images = $("#galerija img");
    var img_num = images.length;
    var counter=-1;

    var ciklus = window.setInterval(function () {
      if (counter == img_num) {
        counter = 0;
      }
      else{
        counter++;
      }

      $('#glavna_slika img').attr('src',$(images[counter]).attr('src'));
    }, 3000);
  }

$(document).ready(function(){

  start_slideshow;

  $("#galerija img").hover(function(){
    $('#glavna_slika img').attr('src',$(this).attr('src'));
    window.clearInterval(ciklus);
  }, start_slideshow);
});

但是在加载页面时不调用该函数(尽管回调函数有效)。如果我没有将start_slideshow()的代码封装在一个函数中,我不知道如何恢复自动图像旋转,如果我确实将它保留在函数中,我就不知道怎么做它在页面加载时执行。

4 个答案:

答案 0 :(得分:0)

您遗漏了()

中的start_slideshow()

答案 1 :(得分:0)

你忘记了函数调用的():

$(document).ready(function(){

  start_slideshow();   //  <--- here

  $("#galerija img").hover(function(){
    $('#glavna_slika img').attr('src',$(this).attr('src'));
    window.clearInterval(ciklus);
  }, start_slideshow);
});

答案 2 :(得分:0)

使用括号调用方法。即start_slideshow(); 否则你只是写出变量,比如“你好世界”;或42;

您也可以将方法作为变量提供,但如果没有括号,它们将永远不会被执行!

答案 3 :(得分:0)

您的函数“start_slideshow”未在加载时调用。     使用start_slideshow();