第一次双击后不起作用

double click is not working after 1st time

本文关键字:不起作用 双击 第一次      更新时间:2023-09-26

我有一个 MVC 站点,我有一个 html 表,双击一个单元格时它将进入编辑模式,第一次它工作,下次当我在同一单元格或任何其他单元格上加倍时,它不起作用,当我在任何地方单击时,然后如果我双击它工作正常。

我怀疑单击和双击之间存在一些冲突。

$('#TableOverride tr:gt(0)').each(function () {
$(this).find('td:eq(9)').dblclick(function () {
EditCell(this, 9);
});
});

更新 :在Chrome中测试,工作正常,没有任何问题,看起来像IE 11及更早版本的浏览器问题。

function EditCell(thisCell, colNum) {
    var Id;
    // if the table cell is not in edit mode
    if ($(thisCell).find('input').length == 0) {
        if (colNum == 4 && $(thisCell).parent().parent().parent()[0].id == 'OverrideTable') {
             myBlk = $(thisCell).html();
            $(thisCell).html('<input type="text" data-oldvalue="' + myBlk + '" />');
            $(thisCell).find('input').val(myBlk);
            $(thisCell).find('input').trigger('focus');
            $(thisCell).find('input').keypress(function (e) {
                if (e.which == 13) {
                    // If Enter key is pressed, update data.
                    myBlk = $(this).val();
                    if (myBlk == '') {
                        $('div.errorSummary').html('my block cannot be empty!');
                        $('div.errorSummary').show();
                    } else {
                        Loadmyblk(myBlk, this);
LeaseOverrideObj.GetLeaseOverride());
                    }
            });
        }

试试这个,它应该可以工作,添加自定义类,例如"EditableCell",以便在文档上的dblclick事件绑定中使用。

$('#TableOverride tr:gt(0)').each(
   function () {
         $(this).find('td:eq(9)').removeClass('EditableCell').addClass('EditableCell');
     });
});
$(document).on('dblclick', '.EditableCell', function()
        { EditCell(this, 9);
        });

请注意$(document).on不应该在任何循环中调用,它应该只在document.ready中调用一次。

Js 小提琴

更新了小提琴链接,以演示动态添加的事件