4

我有一个 kendoUI 下拉列表,定义如下:

 @(Html.Kendo().DropDownList()
                  .Name("EditGroupSelector")
                  .BindTo(Model.Groups)
                   .Events(
                    events => events
                        .Select("onEditGroupSelected")
                   )
            )

我知道当我按如下方式调用 api 时不会触发 select 事件:

editGroupSelector.select(0);

手动选择第一项后,我想手动触发选择事件:

editGroupSelector.trigger("select");//api calls dont trigger events -> trigger it manually

这会调用事件,但在事件处理程序中,我没有我的事件,因此无法获取新的选定值:

function onEditGroupSelected(e) {
    var nameOfGroup = e.item.text();//e.item does not exist when triggered manually
}

如何触发事件以便我可以在事件处理程序中实际使用“e.item”?

4

1 回答 1

13

jQuerytrigger函数有一个可选参数,即实参。您需要手动添加它,使其与自动调用兼容。您应该添加(至少)item.

例子:

如果iddropDownList是你的,dropdownlist你可以创建如下参数:

dropDownList.select(3);
dropDownList.trigger("select",
        { item: $("li.k-state-selected", $("#dropdownlist-list")) }
);

注意:请务必注意,list装饰器 (open dropDownList) 不是由id您定义的 (ex. dropdownlist) 标识的,而是id-list(Ex: dropdownlist-list) 标识的。这就是为什么 jQuery 选择器是$("li.k-state-selected", $("#dropdownlist-list")

于 2013-01-23T15:29:26.117 回答