Kendo DropDownList - onSelect / onClose

时间:2014-07-09 12:22:33

标签: onselect kendo-dropdown

我的另一个问题。标题基本上是这样说的,但我想知道在使用kendo DropDownList时,函数onSelectonClose之间的真正的差异是什么。我当然会阅读Kendo Documentation,但我并不清楚onSelectonClose之间的实际差异。我不能100%确定这是否是一个问题,但我仍然会问它,因为我希望有人照亮我。那么,这两个函数的使用有何不同?

其他看到的链接:

提前致谢。

2 个答案:

答案 0 :(得分:2)

首先要注意的是触发事件的顺序。如demo here中所示,首先触发select事件,然后触发change,然后触发close事件。

select事件

只要用户选择了某个项目,就会触发

select(注意:不是以编程方式选择的)。并且,除了在事件参数中传递e.sender之外,它还是触发事件的DropDownList实例,它还传递e.item,这是所选的<li>项。然后,您可以使用它来获取该项目的模型,方法是将e.item.index()传递给DropDownList中的.dataItem()方法,即:

$("#list").data("kendoDropDownList").dataItem(e.item.index());

有关此方法行为的注意事项是,即使您再次选择当前选定的项目,它也会触发。如果您不断选择相同的项目,它将继续触发select方法。

change事件

只要选择了一个项目并且与之前的值不同,就会触发{p> change。它与select方法的不同之处在于e.sender是在事件参数中传递的唯一参数,因此没有内置的方法来查看未经挖掘选择的项目进入e.sender对象中的方法和项目。

close事件

每次关闭列表时都会触发

close即使未选择任何内容。与change事件类似,事件参数中传递的唯一参数是e.sender。此方法的目的是在您希望在列表关闭时触发某些行为的情况。

答案 1 :(得分:0)

您可以获得有关选择的角度样式反馈,如下所示:

    var $disDeskSel2 = $("#disDeskSel2");
function onSelectTwo(e) {
    var dataItem = this.dataItem(e.item.index());
    $("#displayNextSelection").html('<p>You age: ' + dataItem.text + '</p>');
    $disDeskSel2.html('<p><span class="label label-primary">Based on your selection </span> You age: ' + dataItem.text + '</p>')
        .hide();
}