Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 嵌套网格的JqWidgets上下文菜单中面临双重发布问题_Javascript_Jquery_Jqwidget - Fatal编程技术网

Javascript 嵌套网格的JqWidgets上下文菜单中面临双重发布问题

Javascript 嵌套网格的JqWidgets上下文菜单中面临双重发布问题,javascript,jquery,jqwidget,Javascript,Jquery,Jqwidget,我在嵌套网格的JqWidgets上下文菜单中面临双重发布问题。事件在n时间触发,其中n是我单击上下文菜单的时间 除此之外,如果我将事件处理程序方法保持在上下文菜单创建之外,则在这种情况下不会调用事件处理程序 场景1:我遇到双重过帐问题,无法获取所选行-列值 //handle context menu clicks. var teamButtonClick = function (event) { try{ // create context menu for T

我在嵌套网格的JqWidgets上下文菜单中面临双重发布问题。事件在n时间触发,其中n是我单击上下文菜单的时间

除此之外,如果我将事件处理程序方法保持在上下文菜单创建之外,则在这种情况下不会调用事件处理程序

场景1:我遇到双重过帐问题,无法获取所选行-列值

//handle context menu clicks.
var teamButtonClick = function (event) {

    try{

           // create context menu for Task
           var taskContextMenu = jQuery("#teamMenu").jqxMenu({ width: 160, height: 162, autoOpenPopup: false, mode: 'popup'});
           jQuery("#<portlet:namespace />teamGrid").on('contextmenu', function () {
               return false;
           });
           jQuery("#teamMenu").on('itemclick', function (event) {
               try {
                   var args = event.args;
                   var rowindex = jQuery("#teamGrid").jqxGrid('getselectedrowindex');
                   if (jQuery.trim(jQuery(args).text().trim()) == "Add User") {
                        editrow = rowindex;
                        jQuery("#rowId").val(editrow);
                        var dataRecord = jQuery("#teamGrid").jqxGrid('getrowdata', args.rowindex);  
                        alert(dataRecord);                  
                    }
               }catch(e) {alert(e);}
           });

           var buttonID = event.target.id;      
           jQuery("#teamGrid").jqxGrid('selectrow', buttonID);
           var scrollTop = jQuery(window).scrollTop();
           var scrollLeft = jQuery(window).scrollLeft();
           taskContextMenu.jqxMenu('open', parseInt(event.clientX) + 5 + scrollLeft, parseInt(event.clientY) + 5 + scrollTop);
           return false;
         }catch(e) {
            alert('error in contextmenu: ' + e);
         }
}
场景2:当我保持在上下文菜单创建块之外时,没有调用我的事件处理程序

// event handler is not getting called in this case
jQuery("#teamMenu").on('itemclick', function (event) {
   try {
       var args = event.args;
       var rowindex = jQuery("#teamGrid").jqxGrid('getselectedrowindex');
       if (jQuery.trim(jQuery(args).text().trim()) == "Add User") {
            editrow = rowindex;
            jQuery("#rowId").val(editrow);
            var dataRecord = jQuery("#teamGrid").jqxGrid('getrowdata', args.rowindex);  
            alert(dataRecord);                  
        }
   }catch(e) {alert(e);}
});

//handle context menu clicks.
var teamButtonClick = function (event) {

    try{

           // create context menu for Task
           var taskContextMenu = jQuery("#teamMenu").jqxMenu({ width: 160, height: 162, autoOpenPopup: false, mode: 'popup'});
           jQuery("#<portlet:namespace />teamGrid").on('contextmenu', function () {
               return false;
           });

           var buttonID = event.target.id;      
           jQuery("#teamGrid").jqxGrid('selectrow', buttonID);
           var scrollTop = jQuery(window).scrollTop();
           var scrollLeft = jQuery(window).scrollLeft();
           taskContextMenu.jqxMenu('open', parseInt(event.clientX) + 5 + scrollLeft, parseInt(event.clientY) + 5 + scrollTop);
           return false;
         }catch(e) {
            alert('error in contextmenu: ' + e);
         }
}

“提前感谢”

事件可以引发n次,前提是您绑定了n次。检查您的代码您调用TeamButton单击绑定到itemclick的函数的次数。如果调用itemclick超过1次,则超过1次: