0

私はjqueryに次のようなonload関数を持っています:

$(function () {
    $('.over').hover(function () {

            //FIRST PARAMETER RIGT, LEFT, TOP, BOTTOM
        if ($(this).attr('data-direction') == 'right') {
            $(this).addClass('flipping-right');
        }   
        else if ($(this).attr('data-direction') == 'left') {
            $(this).addClass('flipping-left');
        }
        else if ($(this).attr('data-direction') == 'top') {
            $(this).addClass('flipping-top');
        }
                 //ETC.

    //SECOND gal1,gal2,gal3,gal4
    if ($(this).attr('gal') == 'gal1'){    
        img = $(this).find('img');
        setTimeout(function() {
           img.attr('src', arrFirstYellowCard[i]);
           i++;
           if(i > arrFirstYellowCard.length-1)
              i=0;
       }, 100);
    }

    else   if ($(this).attr('gal') == 'gal2'){    
        img = $(this).find('img');
        setTimeout(function() {
           img.attr('src', arrSecondPurpleCard[j]);
           j++;
           if(j > arrSecondPurpleCard.length-1)
              j=0;
       }, 100);
    }  

関数が毎秒その関数を実行するようにしたいのですが、次のような配列のパラメーターを使用します

var array_param = ["right,gal1","top,gal3","bottom,gal4","left,gal2","right,gal5"];

組み合わせが許可されています

タイマーが欲しいので、各パラメーターは毎秒呼び出されます

var timer = $.timer($('.over').hover(array_param( 0 ) ), 1000);
timer.play();

しかし、この関数を実装する方法と、onloadで割り当てられた関数にパラメーターを追加する方法がわかりません。

$(function () { $('.over').hover(function () {...

私のjsfiddleを見てください

4

1 に答える 1

1

再度トリガー準備を行うことはできません。名前付き関数を作成して、それをまとめて呼び出すことができます。

$(function () {
    index = 0;
    window.setInterval(function () {
        if (index > array_param.length) index = 0;
        myFunction(array_param[index++]);
    }, 1000); // call myFunction every second
});

myFunction = function (image) {
    $('.over').hover(function () {
        // rest of your code goes here
        ...
};
于 2013-03-14T16:25:22.260 に答える