2012-05-17 3 views
0

특정 조건이 충족되는 경우에만 JQuery 토글 기능을 실행 (입력 필드를 클라이언트가 액세스 할 수 있도록 토글합니다)하고 싶습니다. (JavaScript를 사용하여 조건을 테스트하고 있습니다.)이 작업을 수행 할 수 있습니까? 어떤 이유로, JQuery 토글 함수는 JavaScript 함수 내에 설정할 때 작동하지 않으므로 잘못된 작업을 수행하고 있는지 또는 전혀 수행 할 수 없는지 잘 모르겠습니다.토글 요소가 jQuery와 작동하지 않습니다.

<script type="text/javascript"> 
function conditionalToggle() 
{ 
    if (conditionIsMet) 
    { 
     // JQuery toggle call here 
    } 
} 
</script> 
+1

외부에서 작동하지만 내부에서 작동하지 않는 경우 'conditionIsMet'이 false이거나 호스트 기능이 호출되지 않는 경우 어떤 경고를 추가하여 –

+1

예, 자세한 정보를 확인하십시오. 아마도 conditionalToggle을 호출하는 곳의 코드와 그 함수의 jQuery 함수를 보여줄 것입니다. –

+1

이 함수와 함수가 제대로 호출되기 전에 jQuery가로드되면 작동합니다. 전체 코드를 붙여 넣거나 http://jsfiddle.net/에서 바이올린을 만들 수 있습니까? –

답변

3

당신은 아마 jQuery를 권리를 사용하지 않는, 또는 DOM이 준비가 될 때까지 기다립니다하지 않는 기능, 또는 (새 jQuery를 사용자의 가장 일반적인 실수를) 실행하지 않습니다

function foo(){ 
    if ("foo" === "foo") 
     $('#elementId').toggle(); 
} 

$(function(){ // functions inside $() runs after the DOM is ready. 
    foo(); 
}); 

여기에서 elementId은 요소 ID의 자리 표시 자입니다. 이 toggle 과부하를 사용할 수 있습니다
Simple DEMO


참고 :

$('#elementId').toggle(showTheElementOrNot); 

toggle(showOrHide)
showOrHide 부울 표시하거나 요소를 숨길 수 있는지 여부를 나타내는.

jQuery docs

1

준비() 함수 내에서

<script type="text/javascript"> 
$(function() { 
    function conditionalToggle(){ 
     if (conditionIsMet) { 
     $(element).toggle(); 
     } 
    } 
}); 
</script> 

하거나 할 경우 jQuery를 작동합니다 :

<script type="text/javascript"> 
    function conditionalToggle() { 
     if (conditionIsMet) { 
      element.style.display = element.style.display=='block' ? 'none' : 'block'; 
     } 
    { 
</script> 
0

DOM이 준비가되면 당신이 한 경우 당신은 그것을 할 수 있습니다 여전히 문제가 있다면 다음과 같이 할 수 있습니다.

<script type="text/javascript"> 
    $(window).load(function() { 
     conditionIsMet && $('#elementId').toggle(); 
    }); 
</script>