Javascript k完整菜单项将触发它两次。我会玩它,看看有没有办法防止这种情况发生。很抱歉,我最初没有领会你的意思。在玩了一点之后,似乎是因为在html菜单中添加了复选框。剑道必须将事件连接到菜单和复选框。如果您只是将菜单更改为列名文本(不带复选框),它将只触发一次。我将
Javascript k完整菜单项将触发它两次。我会玩它,看看有没有办法防止这种情况发生。很抱歉,我最初没有领会你的意思。在玩了一点之后,似乎是因为在html菜单中添加了复选框。剑道必须将事件连接到菜单和复选框。如果您只是将菜单更改为列名文本(不带复选框),它将只触发一次。我将,javascript,jquery,kendo-ui,kendo-grid,kendo-menu,Javascript,Jquery,Kendo Ui,Kendo Grid,Kendo Menu,k完整菜单项将触发它两次。我会玩它,看看有没有办法防止这种情况发生。很抱歉,我最初没有领会你的意思。在玩了一点之后,似乎是因为在html菜单中添加了复选框。剑道必须将事件连接到菜单和复选框。如果您只是将菜单更改为列名文本(不带复选框),它将只触发一次。我将用不同的策略更新我的答案。 $("#menu").kendoMenu({ dataSource: [{ text: "Menu", items: ds }], openOnClick: true, closeOnClick: f
k完整菜单项将触发它两次。我会玩它,看看有没有办法防止这种情况发生。很抱歉,我最初没有领会你的意思。在玩了一点之后,似乎是因为在html菜单中添加了复选框。剑道必须将事件连接到菜单和复选框。如果您只是将菜单更改为列名文本(不带复选框),它将只触发一次。我将用不同的策略更新我的答案。
$("#menu").kendoMenu({
dataSource: [{
text: "Menu",
items: ds
}],
openOnClick: true,
closeOnClick: false,
open: function () {
var selector;
$.each(grid.columns, function () {
if (this.hidden) {
selector = "input[data-field='" + this.field + "']";
$(selector).prop("checked", false);
}
});
},
select: function (e) {
// don't show/hide for menu button --- calling twice
if ($(e.item).parent().filter("div").length) return;
console.log("******");
var input = $(e.item).find("input.check");
var field = $(input).data("field");
if ($(input).is(":checked")) {
grid.showColumn(field);
} else {
grid.hideColumn(field);
}
}});
$("#menu").kendoMenu({
dataSource: [{
text: "Menu",
items: ds
}],
openOnClick: true,
closeOnClick: false,
open: function () {
var selector;
$.each(grid.columns, function () {
if (this.hidden) {
selector = "input[data-field='" + this.field + "']";
$(selector).prop("checked", false);
}
});
},
select: function (e) {
// don't show/hide for menu button
if ($(e.item).parent().filter("div").length) return;
var removeItemFlag = false;
var input = $(e.item).find("label");
var selectedValue = input[0].innerHTML;
if(selectedValue)
{
for(var i=0; i< droplist.length; i++){
if(droplist[i] === selectedValue){
removeItemFlag = true
input[0].classList.remove = "fa fa-check-square-o";
input[0].className = "fa fa-square-o";
break;
}
}
var selectedIndex = droplist.indexOf(selectedValue);
if (selectedIndex > -1 && removeItemFlag) {
droplist.splice(selectedIndex, 1);
grid.hideColumn(selectedValue);
}else{
droplist.push(selectedValue);
grid.showColumn(selectedValue);
input[0].className = "fa fa-check-square-o";
}
}
}