2012-02-01 2 views
3

Yii 프레임 워크를 사용하고 있습니다. 몇 페이지에서 jQuery를 사용하여 사용자 정의 UI를 추가하려고합니다. 나는이 같은 것을 사용하는 조언을 발견

$(document).ready(function() { 
    ... my code 
}); 

: 나는 결과가 뭔가처럼되고 싶어하지만

Yii::app()->clientScript->registerScript('testscript'," 
    alert('hello world'); 
",CClientScript::POS_READY); 

, 나는 오히려 큰 자바 스크립트 코드 (약 100 라인)이를 그리고 하드입니다 PHP 문자열 (편집기에서 구문 강조 표시 안 함, 코드 접기 없음) 안에있을 때도 읽습니다.

더 좋은 방법이 있을까요?

별도의 .js 파일에 코드를 삽입해도 괜찮지 만 document.ready 핸들러에로드하는 방법을 알지 못합니까?

답변

5

가 registerScriptFile에 있음을 등록하는 JS 파일의 클래스/함수에 코드를 분리 그런 다음 registerScript를 사용하여 해당 클래스/메서드를 호출합니다 (CClientScript가 사용하는 준비 메소드에 추가됩니다.)

+0

좋고 깨끗한 솔루션. 감사. –

2

음, 나는 yii를 사용한 적이 없지만 Google에서 검색하면 yii에 javascript를 추가 할 수 있다는 것을 알았습니다.

나는 .net 사람이지만이 링크는 도움이 될 수 있습니다. http://www.yiiframework.com/forum/index.php?/topic/4778-what-is-the-best-form-to-load-jquery/

난 그냥 추측하고있어하지만 아마 ... 이런 식으로

Yii::app()->clientScript->registerScriptFile('/myScript.js'); 

그리고 당신이 쓰는 것 myScript.js에서

...

$(document).ready(function() { 
    alert('hi'); 
    //js code goes here 
}); 

이제 살펴 보겠습니다 I 그냥 추측하고 있지만,이 중 하나를 수행하기 전에 jquery 플러그인을 포함시켜야 할 것입니다. 그래서 그 아마 뭔가 같은 ...

(PHP)

<?php Yii::app()->clientScript->registerCoreScript('jquery'); ?> 
<?php Yii::app()->clientScript->registerScriptFile('/myScript.js'); ?> 

(JQuery와)

$(document).ready(function() { 
    alert('hi'); //script goes here 
}); 
+0

내가 묻는 바로 그 이유입니다. 내가 제안하면 두 개의 문서가 생깁니다. 아르 자형 eady 섹션. 하나는 HTML에, 다른 하나는 외부 javascript 파일에 있습니다. –

+2

HTML에서'document.ready'를 사용하는 이유를 이해하지 못합니다. 모든 자바 스크립트 코드를 외부 파일에 넣기 만하면됩니다. 어쨌든, 여러 개의 document.ready는 잘 동작 할 것이고 DOM이 선착순으로 준비된 후에 모두 실행될 것이다. – Daniel

+0

Yii는 자동으로 클라이언트 쪽 유효성 검사 등과 같이 HTML에서 document.ready()를 자동으로 추가합니다. –

관련 문제