2014-01-09 2 views
1

좋아, 그래서 나는 뭔가를 시도했지만 작동하지 못할 수 있습니다.Jquery .css ('opacity', '0') not working

기본적으로 <li>을 클릭했을 때 나타나는 잔뜩에 숨겨진 <div class="overlay">이 숨겨져 있습니다. 그것을 표시하는 데 아무런 문제가 없지만, 어쨌든 나는 그것을 사라지게하는 문제가 있습니다.

Jsfiddle - http://jsfiddle.net/NP5YA/

누구든지 도와 드릴까요?

감사합니다.

답변

11

당신은 너무 event.stopPropagation()를 사용하는 DOM 트리를 이벤트 buble을 방지해야합니다

$('.close').click(function(e) { 
    e.stopPropagation(); 
    $(this).parent().css('opacity','0'); 
    $(this).parent().css('z-index','-999'); 
}); 

Updated Fiddle

+0

나는 본다! 그것이 다른 CSS 속성과 함께 작동하는 이유입니다 ... 감사합니다! –

1

당신은 여전히 ​​리에서 클릭 한 번 함수를 실행하고 있습니다. 그래서 기본적으로 사라지고 다시 나타납니다. 나는이 일이 일어날 때 이것을 사용한다.

$('#selection li').click(function() { 
    if($(this).hasClass('clicked')) { 
    $(this).removeClass('clicked'); 
    return; 
    } 
    $(this).addClass('clicked'); 
    $(this).find('.overlay').css('opacity','1'); 
    $(this).find('.overlay').css('z-index','9999'); 
}); 

$('.close').click(function() { 
    $(this).parent().css('opacity','0'); 
    $(this).parent().css('z-index','-999'); 
}); 
+0

가끔 e.stopPropagation()이 실행하고 싶은 다른 코드에 문제를 일으킬 수 있기 때문에 이것을 사용합니다. 이것은 더 유한이며 잼에서 벗어날 수 있습니다. – pathfinder

+1

다음에이 문제가 발생하는 것을 염두에 두겠습니다. stopPropagation을 사용하면 tryna가하는 일이 매우 간단합니다. 고마워요! –