私がしたいのは、テーブル検証関数のすべての新しい行を指定し、すべてのイベントを日ごとにチェックし、ドロップダウン リストの時間をチェックすることです (時間から時間まで)。そのためには、新しい行の ID が必要です。古い既存の行に対して行いました! 多くの方法を試しましたが、常にコードにバグがあります。テーブルは会社が所有するブラック ボックス コンポーネントであり、そのスクリプトを読み取ることはできますが、編集することはできません。バグがあり、対処する必要があります。セルの ID は、カウンターをインクリメントすることによって与えられます。したがって、3 つの行がある場合、セルの ID は次のようになります。
id | task name | day | from hour | to hour
==============================================================
id0 | task_name0 | day0 | from_hour0 | to_hour0
----------------------------------------------------------
id1 | task_name1 | day1 | from_hour1 | to_hour1
----------------------------------------------------------
id2 | task_name2 | day2 | from_hour2 | to_hour2
新しい行を追加すると、新しい行のIDは次のとおりです。
id4 | task_name4 | day4 | from_hour4 | to_hour4
番号 4 に注意してください。行数を取り、それを id として割り当てます。
テーブルの途中から行を削除すると、隠し入力 max_rows が減少せず、ID を一意に保つ必要がないという問題が発生します。
だから、これが私の問題です。新しいIDにイベントを与えたいのですが、それが何であるかわかりません!! (この状況は、テーブルの中央から行を削除した後に表示されます)、それを行う私の古い方法は、行数を取り、そのように文字列に割り当てることでした:(これはすべての日をチェックし、すべてのチェックを外します)
$(document).ready(function()
{
$('#table_1_addRow').click(function()
{
var row=$('#table_1').find('tbody > tr').size();
$('#col_task_days'+row+'_0').click(function(){
for (var i=1;i<8;i++)
{
//check all & make them readonly
if($('#col_task_days'+row+'_0').attr('checked')=='checked')
{
$('#col_task_days'+row+'_'+i).attr('checked','checked');
$('#col_task_days'+row+'_'+i).attr('disabled','disabled');
}
else
{
$('#col_task_days'+row+'_'+i).attr('disabled',false);
}
}
});
});
});
この方法は失敗しました!
別の方法「最後の子」を使用してみましたが、すべてのチェックが2つのチェックすべてのイベントにバインドされていたため、失敗しました。1つはそれ自体、もう1つは最後の子です。
$(document).ready(function()
{
$('#table_1_addRow').click(function()
{
//days columns in the nine column in table
var id=$('#table_1').find('tbody > tr:last-child').children()[4].children[0].id;
$('#'+id).click(function(){
for (var i=1;i<8;i++)
{
var id_son=$('#table_1').find('tbody > tr:last-child').children()[4].children[i].id;
//check all & make them readonly
if($('#'+id).attr('checked')=='checked')
{
$('#'+id_son).attr('checked','checked');
$('#'+id_son).attr('disabled','disabled');
}
else
{
$('#'+id_son).attr('disabled',false);
}
}
});
});
});
それも失敗した
別の方法を提案できますか?私の質問を宣言したことを願っています!!