我找到原因了以下的jQuery /複選框的行爲問題。jQuery的ATTR(「檢查」,「檢查」)的作品只有一次
$(this.obj + ' table.sgrid-content > thead > tr > th > input.select_all').on('click' , {grid:this} , function(event){
var grid = event.data.grid;
if($(this).is(':checked')){
$(grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ').attr('checked','checked');
$(grid.obj + ' .sgrid-content > tbody > tr > td > input.select ').parents('tr').addClass('ui-state-highlight');
} else {
$(grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ').removeAttr('checked');
$(grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ').parents('tr').removeClass('ui-state-highlight');
}
});
代碼的目的是爲工作如下: - 點擊input.select_all觸發事件 - 如果input.select_all檢查:添加屬性檢查table.sgrid-內標記爲。選擇所有複選框內容 - 如果沒有:從所有input.select項中移除'checked'屬性。
還有一種簡單的網格功能。它的工作原理。奇怪的部分是,它只能使用一次。我的意思是,你可以選擇所有的複選框並取消選擇它們。在那之後,「全選」功能停止工作。
另一個奇怪的事情是,當我檢查DOM元素與螢火蟲他們都成爲檢查=「檢查」 ATTR,因爲他們應該,但他們表現和行爲,因爲他們沒有檢查。
選擇器工作,因爲他們應該。添加/刪除ui-state-highlight的代碼部分始終工作。
字explenation的: 格 - 是我通過得到grid.obj(基本上ID的ceratain股利)
請給我你的意見的對象。
使用'.prop( '檢查',真)和.prop( '檢查',假)'代替'.attr( '檢查', '檢查')或.removeAttr'。 ATTR操縱檢查/選擇的狀態現在已經過時,在jQuery的 – codefreak 2013-03-07 08:42:41
感謝,現在當你提到它,問題升級的jQuery的lib後開始。非常感謝,不知道! – PiWo 2013-03-07 08:49:12