函数第一次未启动
Function not firing first time around
我正在使用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
事件被触发。下一次,对每个下拉菜单执行相同的代码,并观察预期的结果。
经过进一步检查,结果发现解决方案相对简单(而且明显)。下拉控件autoBind
值设置为false
,这意味着我的select
事件与select
无关。
更改:
var ddl1 = $("#ddl1").kendoDropDownList({
autoBind: false
...
}).data("kendoDropDownList");
至:
var ddl1 = $("#ddl1").kendoDropDownList({
autoBind: true
...
}).data("kendoDropDownList");
对于每个下拉控件,强制在页面加载时填充CCD_。
我很惊讶,在尝试选择一个还不存在的元素时,我没有收到任何web浏览器错误。
相关文章:
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- 删除确认对话框在第一次单击时不起作用
- Javascript:JSON请求仅在第一次工作
- Javascript onclick事件在第一次单击时未启动
- 为什么onchange事件没有在第一次更改时启动
- 在第一次安装扩展时,使用Javascript重新启动Google Chrome
- 启动日期选择器beforeShowDay只有在第一次点击后才能工作
- JS切换DIV's第一次点击时CSS未启动
- JavaScript 计时器在第一次按键时启动
- JS在第一次访问时重定向到启动页面
- 在第一次触摸启动事件时禁用所有点击事件是个好主意吗?
- 如果鼠标第一次没有离开文本框,则 Jquery 验证不会启动
- 自动完成未在第一次输入时启动
- 在初始页面加载时启动计时器.如果他们离开和返回,必须从第一次装载开始计数
- 在服务器第一次启动时创建一个JSON文件
- jQuery仅适用于浏览器's的第一次启动
- onclick事件不会在带有conditional语句的第一次单击时启动
- 函数第一次未启动
- Javascript OnChange未在第一次更改时启动
- 科尔多瓦/ Javascript localStorage.setItem仅在第一次启动时使用