2016-08-12 4 views
0

Событие Jquery Click запускается в первый раз, но во второй раз оно не запускается.Jquery дата события клика не запускается во второй раз

Datatable:

var tableAttendance = $('#tableAttendance').dataTable ({ 
     "bDestroy"  : true, 
     "bAutoWidth"  : false, 
     "bServerSide" : true, 
     "bDeferRender" : true, 
     "sServerMethod" : "POST", 
     "sAjaxSource" : pageUrl(), 
     "sAjaxDataProp" : "aaData", 
     "aaSorting"  : [[2, 'desc']], 
     "fnCreatedRow": function(nRow, aData, iDataIndex) { 
      $(nRow).attr({ 
       "data-toggle":"context", 
       "data-target":"#attendance-context-menu" 
      }); 
     }, 
     "aoColumns"  : [ 
     { 
      "mData" : function (row, type, set) { 
       return '<div>'+ row['Employee_Name'] +'</div>'; 
      } 
     }] 
    }); 

Jquery события:

$(document).on('click contextmenu', '#tableAttendance tbody tr', function (e) { 
    console.log("Event Triggered"); 
    var selectRow = $(this); 

    if (!selectRow.hasClass('row_selected')) 
    { 
      selectRow.addClass('row_selected'); 
    } 
    else 
    { 
      //Other than right click. Because i use multi-select option 
      if(e.button !== 2) 
      selectRow.removeClass('row_selected'); 
    } 
    }); 

Работа для разных строк выберите событие. Но когда я нажимаю правой кнопкой мыши (контекстное меню) одну и ту же строку более одного раза, событие не запускается

+0

Где определяется переменная 'e'? Добавление row_selected работает, но удаление не происходит, потому что 'e' для меня не определено. – DKSan

+0

Это их сценарий, в котором событие не срабатывает второй раз? – Deepak

+0

Посмотрите мое редактирование. Проверка на e.button на правый щелчок всегда дает false – DKSan

ответ

0

Просто протестирован, и ваш код работает для меня.

Не могли бы вы, пожалуйста, попробуйте изменить ваш обработчик щелчка следующим образом:

$(document).on('click contextmenu', '#dummy tbody tr', function() { 
    var d = new Date(); 
    console.log("Event Triggered" + d.getMilliseconds()); 
}); 

При отладке с поджигатель это вполне может быть, что вы проглядели номер в передней части вошедшего текста.

enter image description here

сообщение с точно таким же содержанием вошло несколько раз привести в числе которых увеличиваются.

Добавление миллисекунд к выходу немного изменит сообщение и приведет к новой строке вывода.

EDIT:

Правый клик приведет к значению e.button = 2.

Это значение проверяется в вашем обработчике if(e.button !== 2) и не выполняет selectRow.removeClass('row_selected');, потому что результат проверки false.

Полностью удалив чек на e.button, вы получите щелчок правой кнопкой мыши, чтобы выбрать и отменить выбор строк.

+0

Это кажется очень правильным. –

+0

Событие Click работает нормально. Но контекстное меню контекстного меню не запускается во второй раз – Deepak

Смежные вопросы