2011-08-30 5 views
2

들어 난 데 문제는 당신이 첫 번째 이미지 위에 마우스를 가져 가면 것으로 보인다 있다는 것입니다 문문 및 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]'의 보존과 관련이있는 것 같습니다. 즉 메서드를'click'으로 변경하십시오. –

+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