2014-02-12 4 views
0

나는 속성과 메소드를 CgridAdminView의 객체를 정의 :jQuery가 준비 이벤트에서 요소를 찾지 못하는 이유는 무엇입니까?

$(function(){ 
    CgridAdminView.tr_add.hide(); 
}); 

그것을 :

var CgridAdminView = { 
    controller_name: 'work', 
    div_table_id: 'grid-admin-works', 
    tr_add: $('#' + this.div_table_id).find('tr').eq(1), 
    disabled: '.td_workGroup', 
    list_cols: [ 
     'index', 
     'shortName', 
     'fullName', 
     'codeName', 
     'workGroup_id', 
     'period', 
     'performers'] 
}; 

이 tr_add 준비의 이벤트의 프로세서의 요소가 포함되어 있지 않습니다 특성 작품 수 :

$(function(){ 
    var tr_add = $('#'+CgridAdminView.div_table_id).find('tr').eq(1); 
    tr_add.hide(); 
}); 

하지만 tr_add 속성에는 의 개체 메서드에 필요한 요소가 포함되어 있습니다. CgridAdminView.

어떤 오류가 있습니까? 당신이 DOM 준비 처리기 내부 CgridAdminView 선언하지 않는 것처럼

답변

1

이 보이는

$(function() { 

    var CgridAdminView = { 
     controller_name: 'work', 
     div_table_id: 'grid-admin-works', 
     tr_add: $('#' + this.div_table_id).find('tr').eq(1), 
     disabled: '.td_workGroup', 
     list_cols: [ 
      'index', 
      'shortName', 
      'fullName', 
      'codeName', 
      'workGroup_id', 
      'period', 
      'performers'] 
    }; 
    CgridAdminView.tr_add.hide(); 
}) 

tr_add 속성 값이 할당되기 때문에 CgridAdminView가 생성 될 때 대상 요소가 다음로드되지 않은 경우, 그래서 객체가 생성 될 때 $('#' + this.div_table_id).find('tr').eq(1)을 평가해도 결과가 반환되지 않습니다.

요점은 jQuery 선택기가 DOM 준비가 필요하다는 것입니다.

+0

매우 감사합니다. Johny! – ollazarev

관련 문제