如何禁用Kendo ListView中的项目?

时间:2013-11-14 18:25:51

标签: javascript jquery listview kendo-ui

我正在尝试禁用我的Kendo listview控件中的项目。我试过打电话

$('#itemid').prop('disabled', true);

但它没有效果(它是div,而不是input)。我不希望用户能够点击此项目。我还尝试获取click事件处理程序并临时将它们放在一边,从而禁用控件。

$('#itemid').data('events')

...应该给我这些事件,但它什么都不返回。如何禁用列表视图中的项目?

1 个答案:

答案 0 :(得分:1)

目前,Kendo UI并不支持此功能。选择在Selectable的_tap方法中清除。 您可以通过覆盖kendoSelectable的_tap方法来解决问题,例如:

kendo.ui.Selectable.fn._myTap = kendo.ui.Selectable.fn._tap;
kendo.ui.Selectable.fn._tap =  function(e) {
    if ($(e.target).hasClass("my-disabled-item")) {
        return;
    }

    this._myTap(e);
}

并向ListView添加disableItem方法:

kendo.ui.ListView.fn.disableItem =  function(elem) {
    $(elem).addClass("my-disabled-item");
}

请参阅此处禁用前两项的演示:http://jsfiddle.net/lhoeppner/vP2L9/

请注意,所有这些都可能会因升级而中断(无法保证Telerik会将此代码保留在_tap方法中)。