2012-06-09 2 views
3

내가 파일 이름의 afterAjaxUpdate에 있었던 파라미터에 의해 또 다른 JS 파일에 정의 된 함수를 호출하는 것을 시도하고 보여줍니다하지만 난 기능이afterAjaxUpdate callbackfunction의하여 CListView은 정의되지 않은

<?php 
$dataProvider=new CActiveDataProvider('profiles',array('pagination'=>array('pageSize'=>3))); ?> 
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider, 
'itemView'=>'_profilesview', 
'template'=>'{sorter}<br />{pager}{items}{pager}', 
    'enableSorting' => true, 
    'sortableAttributes'=>array(
    'name'=>'By firstName', 
    'location'=>'By city', 
    'age'=>'By age', 
    'likes'=>'By likes' 
    ), 
    'afterAjaxUpdate'=>'readcookie()', 
)); 
?> 

내 JS 함수를 정의되어 있지 콘솔에서 오류가 발생했습니다

$(document).ready(function(){ 
    function readcookie() 
    { 
     alert("hi"); 
    } 
}); 

는 내가 그것을 JQuery와 포함되지 때문에 $를 찾을 수 dosent 난 내 레이아웃에 내 스크립트를 등록 할 때 YII 기본 가 포함 된 모든 JS 파일 이후에 포함되어있는 파일에 정의 된 함수 내 소스에서 볼 수있다 whe NI는 (참, 거짓, 널 (null), 'Mybelowview')가

renderPartial을 설정하여 내 이벤트 나는 또한에 노력을 트리거 할지도하는 두 번 포함됩니다 JQuery와 포함

다시는 내 JS 파일을 리드

여러 번 포함 시키면 내 이벤트는 여러 번 트리거됩니다.

$(document).ready(); 내부 기능이 외부의 범위를 벗어난다는 것이다

+0

이 포함되어 있습니다 :

$(document).ready(function(){ window.readcookie=function() { alert("hi"); }; }); 

는 마지막으로 속성 'afterAjaxUpdate'을 정의 레이아웃이나 뷰에'readcookie()'함수가있는 js 파일? –

+0

예. 하지만 HTML 페이지의 소스를 볼 때 모든 yii JS 파일이 포함 된 이후에 오류 함수가 정의되지 않았 음을 알게되었습니다. –

+0

@ bool.dev 이제 i가 정의한 함수를 호출하는 대신 i가 정의한 함수를 호출하지만 느낌이 없습니다. 그 좋은 방법은 내가 그것을 정의 할 때마다 내가 어디서나 그것을 사용할 것입니다 때마다 이것을 할 올바른 방법을 제안 할 수 있습니다 –

답변

3

문제 때문에 관대를 위해 그것의 감사 모두를 얻을 도와주세요 매우 혼란, 그리고 당신이 정의되지 않은를 얻을 이유가 있습니다. 두 단지가 그래서 당신은 할 수 있습니다

// $(document).ready(function(){ 
    function readcookie() 
    { 
     alert("hi"); 
    } 
// }); 
// omit document.ready to make function available in the global scope 

를하거나 창 개체의 함수를 정의하는 것은 글로벌 만들려면 :

'afterAjaxUpdate'=>'readcookie' 
// if it is readcookie() it becomes a function call instead 
+0

의심이나 뭐든지 있으시면 후속 조치를 취하십시오. –

+0

..! 덕분에 많이 –

+0

좋아 .. 글래드 내가 도울 수 –