2014-02-12 71 views
0

我所定義的對象CgridAdminView與屬性和方法:爲什麼jQuery在ready事件中沒有找到元素?

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(){ 
    CgridAdminView.tr_add.hide(); 
}); 

它是作品:

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

tr_add屬性包含對象的方法中的必要元素CgridAdminView

在什麼錯誤?

回答

1

看起來你是不是宣佈CgridAdminView一個DOM準備處理程序裏面

$(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

相關問題