jquery:if语句可以顺序触发吗?

时间:2014-01-06 05:27:50

标签: jquery variables if-statement mouseover src

此代码同时触发,立即从01跳到04。我试图让它在该图像的第二个.mouseover上触发第二个if语句,然后在第三个.mouseover上触发第三个if语句等。似乎无法弄明白。

if($('img[src*="01"]')){
    $('img').mouseover(function () {
            $(this).attr('src', function(i, src) {
            return src.replace( '01', '02' );
        });
    })
}

if($('img[src*="02"]')){
    $('img').mouseover(function () {
            $(this).attr('src', function(i, src) {
            return src.replace( '02', '03' );
        }); 
    });
}

if($('img[src*="03"]')){
    $('img').mouseover(function () {
            $(this).attr('src', function(i, src) {
            return src.replace( '03', '04' );
        }); 
    });
}

1 个答案:

答案 0 :(得分:0)

您必须创建某种机制来保持整体交互状态。此机制将是客户端等效于服务器端视图状态。 我想你可以使用全局变量来做到这一点。 Here解释了javascript变量的生命周期。

  

全局变量的生命周期在声明时开始,并且   页面关闭时结束。

说完这些后,您将使用一个变量来计算特定用户的悬停时间。然后你会检查悬停时间和你的状况。您的代码应如下所示:

globalHoverCount = globalHoverCount + 1;
if(globalHoverCount=1){ //globalHoverCount is the global variable
    if($('img[src*="01"]')){
       $('img').mouseover(function () {
            $(this).attr('src', function(i, src) {
            return src.replace( '01', '02' );
           });
       }) }
}

希望我帮忙!