2011-08-30 28 views
2

我使用下面的邏輯for語句對於聲明和IMG問題

我遇到的問題是,它似乎是,當你將鼠標懸停在第一幅圖片 - 它隱藏「所有圖像」。我想嘗試和保存每個圖像的[i],但它似乎不這樣做?

function myHandler(elem, img) { 
    var curImg = img; 
    var curImgId = curImg.find('img'); 

    $(curImgId).live('click', function() { 
      $(this).hide(); 
    }); 

//Other stuff requiring preservation of [i] 
} 
+0

將鼠標懸停在圖像上時會發生什麼? –

+0

好吧,它應該隱藏個人圖像。即第一個圖像應該只隱藏 - 而不是隱藏所有其他圖像?與第二,第三等相同 –

+0

是否必須隱藏或設置css可見性屬性對您有好處? http://jsfiddle.net/njPdQ/6/ –

回答

2

當將光標懸停在所述第一圖像,該圖像隱藏。這個是正常的。

但是,您的問題是第二個圖像移動到先前由第一個圖像填充的空間中,第二個圖像獲取鼠標事件,這會導致該圖像隱藏。這種情況會持續發生,直到其他圖像全部消失。

您可以通過將鼠標懸停在第二張圖像上來測試 - 右側的所有圖像都會消失。

+0

是的,但它不會影響它的隱藏或其他 - 這個問題似乎與關閉和保存'[i]'有關?即改變方法到'點擊' –

+0

@John B你可以用這個測試我的答案:http://jsfiddle.net/njPdQ/4/。將鼠標放在每個圖像上後查看控制檯。 –

+0

確定,但現在將其更改爲'$(curImgId).live('click',function(){'以查看我在說什麼? - 請參閱http://jsfiddle.net/njPdQ/5/ –

0

編輯:我第二@Digital飛機回答, 第二圖像來替代第一個因第一個被隱藏並觸發事件。 這裏是一個工作碼:http://jsfiddle.net/njPdQ/8/

的變化是:

功能將myHandler(ELEM,IMG){

console.log(elem); 

var curImg = img; 
var curImgId = curImg.find('img'); 
console.log(img); 
$(curImgId).live('mouseenter', function() { 
    console.log("Event handler: Hiding " + elem); 
    // $(this).hide();  
    $(this).css("visibility", "hidden"); //this will keep the images in place 

}); 

}

+0

是的,我懷疑這樣的事情。任何機會,你可以幫助一些代碼? :) –

+0

是的,給我幾分鐘。 – DhruvPathak

+0

現在工作,你可以檢查。 – DhruvPathak