Javascript 功能第一次不启动

Javascript 功能第一次不启动,javascript,jquery,kendo-asp.net-mvc,Javascript,Jquery,Kendo Asp.net Mvc,我正在使用剑道控件,特别是网格和下拉列表 由于剑道网格组件上没有用于双击事件的内置处理程序,因此我编写了一些JQuery来解决这个问题 通过查看浏览器控制台,我可以看到双击事件被触发,以及从网格中提取相关数据项 问题在于从双击函数中调用ApplySelection。我想根据所选行的数据从六个剑道下拉列表中预先选择值。接下来,我在每个下拉列表上触发change事件以应用相关过滤器 $(document).ready(function () { var grid = $("#grid").d

我正在使用剑道控件,特别是网格和下拉列表

由于剑道网格组件上没有用于双击事件的内置处理程序,因此我编写了一些JQuery来解决这个问题

通过查看浏览器控制台,我可以看到双击事件被触发,以及从网格中提取相关数据项

问题在于从双击函数中调用ApplySelection。我想根据所选行的数据从六个剑道下拉列表中预先选择值。接下来,我在每个下拉列表上触发change事件以应用相关过滤器

$(document).ready(function () {
    var grid = $("#grid").data("kendoGrid");
    grid.tbody.on("dblclick", "tr", function (e) {
        var test = grid.dataItem(this);
        applySelections(grid.dataItem(this));            
    });

    function applySelections(item) {
        $('#ddl1').data('kendoDropDownList').select(function (dataItem) {
            return dataItem.ID === item.subItems[0].ID;
        });
        $('#ddl2').data('kendoDropDownList').select(function (dataItem) {
            return dataItem.ID === item.subItems[1].ID;
        });
        $('#ddl3').data('kendoDropDownList').select(function (dataItem) {
            return dataItem.ID === item.subItems[2].ID;
        });
        $('#ddl4').data('kendoDropDownList').select(function (dataItem) {
            return dataItem.ID === item.subItems[3].ID;
        });
        $('#ddl5').data('kendoDropDownList').select(function (dataItem) {
            return dataItem.ID === item.subItems[4].ID;
        });
        $('#ddl6').data('kendoDropDownList').select(function (dataItem) {
            return dataItem.ID === item.subItems[5].ID;
        });

        $("#ddl1").data("kendoDropDownList").trigger("change");
        $("#ddl2").data("kendoDropDownList").trigger("change");
        $("#ddl3").data("kendoDropDownList").trigger("change");
        $("#ddl4").data("kendoDropDownList").trigger("change");
        $("#ddl5").data("kendoDropDownList").trigger("change");
        $("#ddl6").data("kendoDropDownList").trigger("change");
    }
}

在第一次双击时,我已经跟踪了代码,可以看到最初的双击函数正在执行。但是,applySelections函数中的所有select事件都不会被触发。下次,对每个下拉列表执行相同的代码,并观察预期结果

进一步检查后,结果证明解决方案相对简单且明显。下拉控件自动绑定值设置为false,这意味着我的选择事件没有可选择的内容

更改:

var ddl1 = $("#ddl1").kendoDropDownList({
    autoBind: false
    ...
}).data("kendoDropDownList");
致:

对于每个下拉控件,强制在页面加载时填充数据源


我很惊讶,在尝试选择一个尚不存在的元素时,我没有收到任何web浏览器错误

干得好,所以。。。投票给你…到目前为止做得很好。。坚持下去,你会到达目的地的。给你的工作投上一票。保持激情。
var ddl1 = $("#ddl1").kendoDropDownList({
    autoBind: true
    ...
}).data("kendoDropDownList");