2013-03-08 3 views
-1

사용자가 제출 버튼을 클릭 할 때로드 스피너를 표시하려고합니다. 솔루션을 구현하려고 시도했지만 here을 제공했지만 작동하지 않습니다.show()가 작동하지 않습니다.

는 I 함수가 호출되고 있음을 확인했다 및 경보 (spinner.innerHTML)으로 요동하여 jQuery를 발견되는 대상 DIV는 다음과 같이한다 :

예상대로
<script type="text/javascript"> 
    $(document).ready(function() { 
     var spinner = $("div#spinner"); 
    }); 
    var spinnerVisible = false; 
    function showProgress() { 
     if (!spinnerVisible) { 
      alert(spinner.innerHTML); 
      spinner.show(); 
      spinnerVisible = true; 
     } 
    }; 
    function hideProgress() { 
     if (spinnerVisible) { 
      spinner.hide(); 
      spinnerVisible = false; 
     } 
    }; 
</script> 

때 I 내 버튼을 클릭하면 내 div의 텍스트 인 "Loading ..."텍스트가있는 경고 창이 나타납니다. 그러나, 두 번째 경고를 추가하면 다음에 으로 전화하십시오. spinner.show(); 팝업이 나타나지 않아 어떤 전화가 spinner.show();로 인해 jQuery가 실패하게됩니다.

이것은 jQuery에 대한 첫 번째 진입이기 때문에이를 디버깅하고 깨고있는 부분을 찾아내는 방법에 어려움을 겪고 있습니다.

+0

파이어 폭스를 사용하는 경우'오류 콘솔 (CTRL + SHIFT + J)'을 열면 오류가 있습니까? –

+0

'show()'와'hide()'는 비동기입니다. 엘리먼트가 보이거나 숨겨진 후에 어떤 일이 일어나기를 원한다면, 메소드의 콜백의 일부로서 엘리먼트를 포함시켜야한다. –

+0

@IswantoSan Chrome을 사용하고 있습니다. Java Console의 유일한 오류는 "잡히지 않은 ReferenceError : $가 정의되지 않았습니다."입니다. 이것이 오류일까요? 이것은 스피너의 범위를 수정 한 것입니다. –

답변

1

디버깅 절차에 따라 프로젝트에 jQuery 라이브러리가 포함되어 있지 않은 것으로 보입니다.

jQuery 기능을 사용하려면 프로젝트에서 jQuery를 사용하도록 설정하십시오.

0

제대로 스피너를 정의해야합니다 (즉. 세계에서) 당신은 기능에에 범위를하지 않고 스피너 변수에 액세스하려는

<script type="text/javascript"> 
    var spinner; 
    $(document).ready(function() { 
     spinner = $("div#spinner"); 
    }); 
    var spinnerVisible = false; 
    function showProgress() { 
     if (!spinnerVisible) { 
      alert(spinner.innerHTML); 
      spinner.show(); 
      spinnerVisible = true; 
     } 
    }; 
    function hideProgress() { 
     if (spinnerVisible) { 
      spinner.hide(); 
      spinnerVisible = false; 
     } 
    }; 
</script> 
+0

제안 해 주셔서 감사합니다. 불행히도이 문제가 해결되지 않았습니다. 여전히 spinner.innerHTML 내용을 얻을 수 있기 때문에 jQuery가 요소를 찾을 수 있다는 확신이 있습니다. 몇 가지 이유로 show()/hide()가 실패합니다. –

0

.

관련 문제