javascript - 剑道菜单选择问题

标签 javascript jquery kendo-ui kendo-grid kendo-menu

我有一个剑道菜单可以动态启用或禁用剑道网格列。当我从 KendoMenu 中选择选项时,该选择会触发两次。我创建了下面的演示版本。

demo

$("#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);
    }
}});

选择菜单项时检查控制台日志。

最佳答案

将复选框添加到菜单项似乎会导致 kendo 触发菜单单击和复选框检查的事件。似乎很难区分这两个实例,因此最好做一些不同的事情来指示检查。可以使用以下图标 - 可以使用勾号图标而不是实际的复选框:

http://demos.telerik.com/kendo-ui/styling/icons

关于javascript - 剑道菜单选择问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33758888/

相关文章:

javascript - 防止同一请求多次完成

javascript - 对象的 PropType,其中键是 ID

javascript - Chromecast 定制 CAF 接收器

javascript - 除最后一个 <td> 元素之外的 Fire Click 函数 - Jquery

javascript - jQuery 基于对象的查找和复选框

windows - 剑道: resize window on click

asp.net - Javascript 拒绝调用 ActiveX 方法,同意调用另一个方法

javascript - jQuery 在一个地方正常运行,但在另一个地方却无法正常运行

javascript - 访问 Kendo UI MVC RadioButtonFor Helper 的 JavaScript 控件

javascript - 剑道用户界面 : Dynamically change dataSource of grid on button click event