2015-01-26 4 views
0

토글 기능이 있습니다. 첫 번째 클릭시 숨겨진 div가 표시되고 두 번째 클릭시 숨겨지는 등 ... 작동하지만, 처음 클릭하면 아무 일도 일어나지 않습니다. 그리고 다시 클릭하면 그 일을합니다.두 번째 클릭으로 작업을 수행하는 이유는 무엇입니까?

가 올바르게, 한 곳 작동하게하는 올바른 방법은 무엇입니까
$("#kesfetust").click(function() { 
    var clicks = $(this).data('clicks'); 
    if (clicks) { 
$("#sis").css({display: 'block'}); 
    } else { 
$("#sis").css({display: 'none'}); 
    } 
    $(this).data("clicks", !clicks); 
}); 

HTML을

<div id="kesfetust">Click me</div> 
<div id="sis">I'm a hidden div, and I should open on the first click, 
and hidden on the second click.</div> 

jQuery를 (... 등등 두 번째 클릭에 숨기고, 첫 번째 클릭에 표시) 제가 실수를 ?

+3

왜 그 downvotes? –

+1

http://jsfiddle.net/j3tknhs7/ 첫 번째 클릭에도 작동하는 것 같습니다 – haim770

+0

OP, (CSS에서) #sis가 처음에 숨겨져 있습니까? –

답변

1

귀하의 사업부가 처음 숨겨지지, display:none를 사용하여이를 숨길하십시오

<div id="sis" style="display:none">I'm a hidden div, and I should open on the first click, 
and hidden on the second click.</div> 

왜 한 간단하고 짧은 : 당신이 클릭 처음으로,이

$("#kesfetust").click(function() { 
    $("#sis").toggle(); 
}); 
+0

매력처럼 작동합니다. 나는 그 단순함을 어떻게 놓쳤는 지 믿을 수 없었다. 고마워요! – user198989

1

때문에 더 data("clicks") div에 있으므로 은 undefined이 될 것이고, 다른 경우에는 sis div를 숨김으로 설정합니다.

$("#kesfetust").click(function() { 
    $("#sis").toggle(); 
} 

을 또는 당신이 주장하는 경우 스스로 그것을 할 :

나는 JQuery와 방법으로 당신이 할 제안

$("#kesfetust").click(function() { 
    if($("#sis").is(":hidden")) 
     $("#sis").show(); 
    else 
     $("#sis").hide(); 
} 
관련 문제