2017-01-04 87 views
0

我有脚本咆哮,我需要创建一个函数,更改我的图像,然后用它与setInterval每2秒更改一次图像。如何创建一个函数并在函数上调用它

计数器(控制)工作,但它不会更改图像。

我到底做错了什么?

var contar = 0; //counter value 
var pausa = false; 

function passar(){ //function that changes the image 
    $("#"+contar).click(function(){ 
     $(".img").attr('src', 'imagens/'+contar+'.jpg'); //the image is from 1.jpg to 4.jpg 
     $("#"+contar).addClass('active'); 
     console.log(contar); 
    }); 
} 

setInterval(function(){ //setinterval to use the function "passar" to change image 
    contar++; 
     if(contar<=4) { //my limit of images on the html 
      passar(contar); 
      console.log(contar); 
     }else{ 
      contar = 0; 
     }; 
}, 2000); 
+2

请包括您的HTML。我们不知道'.img'可能(或可能不会引用)。此外,[JavaScript控制台]中的任何错误(http://webmasters.stackexchange.com/questions/8525/how-to-open-the-javascript-console-in-different-browsers)? –

+0

passar()应该带一个参数contar - '函数passar(contar){'编辑:nm,只是看到你有全局变量 – dave

+0

@dave或者不要传入;因为它是被忽略的,并且在任何地方都会使用外部的'contar'。不是OP说计数器正在工作,这是图像变化没有发生。 –

回答

0

这样做。删除点击事件,看起来没有必要。

var contar = 0; //counter value 
var max_images = 4; // my limit of images on the html 
var pausa = false; 

function passar(){ //function that changes the image  
    $(".img").attr('src', 'imagens/' + contar + '.jpg'); // the image is from 1.jpg to 4.jpg 
    $("#"+contar).addClass('active'); 
    console.log(contar); 
} 


setInterval(function(){ // setinterval to use the function "passar" to change image 
contar++; 
    if(contar<=max_images) { 
     passar(contar); 
     console.log(contar); 
    }else{ 
     contar = 0; 
    }; 
}, 2000); 

这是假设您的图像元素具有.img类定义。

+0

是的,我有一个.img类。 这些变化工作得很好,它的工作很好,没有点击事件。 –

相关问题