このコードを機能させるのに問題があります。ユーザーが1つの行をクリックして、別のクラスを介して強調表示することで「選択」できるように構築されています。別の行をクリックすると、その行が強調表示され、現在の行がクリアされます。すでに強調表示されているものをもう一度クリックすると、通常の状態に戻ります。
これは、ページを更新するための ajax 呼び出し内にあるため、呼び出しが終了してテーブルの html が挿入されるたびに、以下の関数が呼び出されます。何らかの理由で、テーブルを 1 回おきにリロードすると、これが機能します。関数の最後に $(this).addClass(selectedUserClass) として機能していない行を追跡しました。そこに入れたデバッグ コンソール ログは正しいクラスで動作しますが、次のセクションでは何らかの理由でクラスが追加されません。
firebugでは、行が .. から に変わるのですが、変わらないのですか? 私はこれを何時間も見てきましたが、理解できません。助けてくれてありがとう!
function loadUserListener(style) {
if (style == "normal") {
selectedUserClass = 'selectedUser';
selectedJQueryClass = '.selectedUser';
} else {
selectedUserClass = 'selectedUserInverted';
selectedJQueryClass = '.selectedUserInverted';
}
console.log('setting');
$("#selectuser").delegate("tr", "click", function () {
if ($(this).hasClass(selectedUserClass)) {
$(selectedJQueryClass).removeClass(selectedUserClass);
} else if ($(selectedJQueryClass)[0]) {
console.log('another');
$(selectedJQueryClass).removeClass(selectedUserClass);
$(this).addClass(selectedUserClass);
} else {
console.log(selectedUserClass);
$(this).addClass(selectedUserClass);
}
});
}