2011-11-09 2 views
0

아래 코드는 $(document).ready(function() { 및 닫는 대괄호없이 jsFiddle에서 잘 작동합니다. (예 : http://jsfiddle.net/cEDYD/)하지만 곧 문서 준비가 된 상태에서 웹 페이지에 코드를 추가하면 작업이 중단됩니다. 내가 놓친 게 있니? jquery를 포함했습니다.document.ready가 추가되면 코드가 작동하지 않습니다.

<script type="text/javascript"> 
$(document).ready(function() { 
    function showDiv(element, pro2) { 
     if (pro2.children("option:selected").val() == "cpl") element.show(); 
     else element.hide(); 
    } 

    var myElement = $("div#pro2"); 
    var mypro2 = $("select#ptype"); 

    $("select").change(function() { 
     showDiv(myElement, mypro2) 
    }); 
}); 
</script> 
+1

JavaScript 콘솔의 모든 항목은 무엇입니까? –

+0

나를 위해 잘 작동합니다. 일반적으로 함수 선언은 준비 함수 범위를 벗어나지 만, – jli

+0

@jli - 문서를 사용할 수있는 유일한 장소라면 문서의 범위 내에서 선호합니다. 예, 문서가 더 복잡해 보이지만 다른 코드와의 충돌을 막을 수 있습니다. – nnnnnn

답변

1

문서 준비 처리기에서이 래핑을 원하지 않는 이유가 있습니까?

표시 JavaScript가 실행 중일 때 DOM이 준비되지 않았습니다.

자바 스크립트 콘솔을 확인하십시오. Google 크롬은 JS 디버깅에 탁월합니다.

+0

나는 하나의 래핑 된 원한다, 원래 샘플 코드는 이제 문서를 준비하고 나 자신을 추가하려고하는 낭비했다. 나는 일할 수있어. – acctman

0

문제는 내 css 파일에서 실수 유형 문자가되었습니다. - 테스트 녀석을위한 감사 인사

0

jsfiddle에는 코드가 자동으로 document.ready()으로 묶여있는 설정이 있습니다. 그렇기 때문에 jsFiddle에 ready()이 없어도 작동합니다 (상단 왼쪽 패널의 위치는 onload입니다).

document.ready()은 본문 HTML 다음에 자바 스크립트를 배치하지 않으면 일반 웹 페이지에 필요합니다.

관련 문제