2014-03-18 46 views
-1

我有一個圖像在點擊後發生變化,並在點擊後保持2秒。檢查圖像來源是否包含值

IMGsrc是用jQuery更改和setTimeout後源返回。問題是,如果用戶在2秒鐘內再次點擊,源代碼會變爲無效位置。

我試圖防止這種通過檢查圖像的當前src包含值_hover.png發生的事情:

if ('ThisIMG img[src*="_hover.png"]') { 
    console.log("yes it does"); 
} 

我已經在這個if語句嘗試過多種方法,我似乎無法得到正確的論據。

這裏有一些不同的東西我曾嘗試:

$('.myImage').on({'click': function(){ 
     var ThisIMG = $(this); 

     //if (ThisIMG.src == '_hover') { 
     if ('ThisIMG img[src*="_hover.png"]') { 
      console.log("yes it does"); 
     } 
     //if (ThisIMG.attr("src").contains "_hover.png") { 
     // console.log('yes it does'); 
     //}; 

     // Method to change image source on click: 
     var src = $(ThisIMG).attr("src").replace('.png', '_hover.png'); 
     $(ThisIMG).attr("src", src); 
     console.log(src); 

     setTimeout(function() { 
      console.log("in timeout"); 
      var src = $(ThisIMG).attr("src").replace("_hover.png", ".png"); 
      $(ThisIMG).attr("src", src); 

     },1000); 
    } 
}); 

HTML:

<img class="myImage" src="graphics/1.png" /> 
+1

那是不必要的{旁邊點擊?應該不是.on('click',function(){ – Dan

+0

@Dan好眼睛,替換爲$('。tileImage')。on(「click」,function(){'並且移除了大括號。 – block14

回答

5

可以使用indexOf()得到src和檢查的子字符串:

if (ThisIMG.attr('src').indexOf('_hover.png') > -1) { 
0

我不確定這是否是你想要的,但我已經改變了它,以便點擊按鈕時發生的事情不會除非發生在src等於.png格式

if($('.myImage').attr('src') == '.png') 

http://jsfiddle.net/jwYE8/