在调用对话框时,单击触发多次,触发与单击

时间:2015-07-24 16:21:52

标签: javascript jquery html

我有一个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');

    ...

1 个答案:

答案 0 :(得分:0)

我的团队负责人帮助解决了这个问题,但我们仍然无法弄清楚为什么一直将其添加10次。我们添加了:第一个,它会停在1。

$('#divAlertEditorTable tbody tr[data-id="' + nodeID + '"]:first').trigger('super-special');