我有一个jTree列表,当我右键单击上下文菜单时,我会显示一个对话框,以便用户可以编辑该项目。在这个对话框中,我有一个包含相同项目列表的表,以便用户可以编辑多于原始项目的选项。第一次通过,在打开对话框时,所选项目被选中'在桌子上点击'所以它的所有信息都填充在输入框中(用于编辑) - 它是完美的。我甚至可以在桌子上选择其他行并按设计工作。但我有控制台消息记录,问题是当我关闭对话框并重新打开它时,控制台日志会显示10点击次数'。对话框中只有5个其他可点击的项目,我已经注释掉了一些列,看看它是否是td' s,我已将某些div评论为好。但总是10点击'以及所有相同的点击项目。
我发现了类似的问题,我已尝试了很多这些建议,但仍有问题。我对这种语言还比较陌生。这是一些代码。感谢。
BindAlertListClick();
// this scrolls to the selected alert
if (nodeID != "") {
var gridContainer = $('#divAlertEditorTable')
var scrollTo = $('tr[data-id="' + nodeID + '"]');
gridContainer.animate({
scrollTop: scrollTo.offset().top - gridContainer.offset().top + gridContainer.scrollTop()
}, 500);
console.log('*****trigger super-special click here')
// 'clicks' it so it's highlighted and fields populated
$('#divAlertEditorTable tbody tr[data-id="' + nodeID + '"]').trigger('super-special');
}
...
这里是函数BindAlertListClick
function BindAlertListClick(){
$('#divAlertEditorTable > tbody > tr').off().on('click super-special', function (event) {
event.stopPropagation();
var alertID = $(this).attr('data-id');
console.log('**** BindAlertListClick alertID', alertID)
console.log('**** $(this)', $(this))
$('#divAlertEditorTable tbody tr').not($(this)).css('background-color', '');
$('#divAlertEditorTable tbody tr').not($(this)).css('color', '');
$(this).css('background-color', 'cornflowerblue');
$(this).css('color', '#FFF');
...
答案 0 :(得分:0)
我的团队负责人帮助解决了这个问题,但我们仍然无法弄清楚为什么一直将其添加10次。我们添加了:第一个,它会停在1。
$('#divAlertEditorTable tbody tr[data-id="' + nodeID + '"]:first').trigger('super-special');