我想创建可重用的代码来查找我的页面上的每个kendoDropDown并在其上设置一个事件处理程序。这是找到单个kendoDrop并执行我想要的代码:
var cb = $("#myID").data("kendoDropDownList");
console.log("cb: " + cb);
if (cb)
cb.close();
我需要的是在页面上找到每个kendoDropDown的代码,并为每个代码添加相同的事件处理程序。我试过了
$("input").each(function (index, element) {
if (element) {
var cb = element.data("kendoDropDownList");
if (cb) {
console.log("element: " + element);
element.close();
}
}
});
但显然我错过了什么。
答案 0 :(得分:7)
element
参数是一个DOM对象,而不是jQuery对象,所以你必须再次包装它;另外,您需要调用cb.close()
而不是element.close()
(或绑定到cb
,因为您要添加事件处理程序)。您也可以简单地引用this
而不是element
参数:
var handler = function (e) {
console.log("open");
};
$("input").each(function () {
var cb = $(this).data("kendoDropDownList");
if (cb) {
// attach handler to cb
cb.bind("open", handler)
}
});