我遇到了让这段代码工作的问题。它的构建允许用户通过突出显示不同的类来点击一行来“选择”它。如果单击另一行,则会突出显示该行,并清除当前行。如果再次单击已突出显示的那个,它将被清除回正常。
这是在刷新页面的ajax调用中,因此每次调用完成并插入表的html时,都会调用下面的函数。出于某种原因,每次重新加载表,这都有效。我已经在功能结束时跟踪了无效的$(this).addClass(selectedUserClass)行。我放在那里的调试控制台日志工作,使用正确的类,但下一节不会出于某种原因添加类。
在萤火虫中,线条从......变为,但它没有变化?我一直在看这几个小时,我无法弄明白。谢谢你的帮助!
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);
}
});
}
答案 0 :(得分:0)
每次调用此监听器加载函数时,我都使用jquery中的'off'函数来清除事件处理程序。我还将代表转为更正确。
我基本上是这样做的:
$('.selectuser').off("click");