我正在使用Kendo控件(特别是Grid
和Drop Down Lists
)。函数第一次没有触发
由于Kendo Grid组件中没有内置处理程序用于双击事件,所以我编写了一些JQuery来解决这个问题。
从检查浏览器控制台,我可以看到触发的双击事件以及从网格中提取的相关数据项。
问题出在applySelections
在双击函数中调用。我想根据所选行的数据预先选择六个Kendo Drop Downs中的值。在此之后,我触发每个下拉列表中的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
事件都没有被触发。下一次,每个下拉菜单执行相同的代码,并观察预期的结果。
良好的工作,所以... upvote for you ... – DiniZx
到目前为止工作出色。继续保持,U会到达#believe(Upvote for you) –
梦幻般的工作实验室。保持呃点亮。 –