gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:25:47 25 4
gpt4 key购买 nike

我在嵌套网格的 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(当我保持在上下文菜单创建 block 之外时,我的事件处理程序不会被调用)

// 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);
}
}

提前致谢

最佳答案

仅当您绑定(bind)事件 n 次时,事件才可以引发 n 次。检查您的代码调用绑定(bind)到“itemclick”的 teamButtonClick 函数的次数。如果“itemclick”被调用超过1次,则超过1次:)

关于javascript - 在嵌套网格的 JqWidgets 上下文菜单中面临双重发布问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29674156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com