0

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

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

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

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

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

4

1 回答 1

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 方法中)。

于 2013-11-15T03:35:15.310 回答