$('#my-view').on('show', showHandler)
不起作用。使用data-show也不是一种选择,因为设置/取消设置事件的代码位于稍后实例化的类中。以编程方式创建视图并传入事件处理程序也不起作用,因为我需要在不同时间开启/关闭事件。
使用kendoUI是不可能的?如果没有,为什么?这似乎是一个非常明显的功能,可以将这些事件传递给元素本身,就像使用jquery ui小部件一样。
答案 0 :(得分:0)
这有效:
var view = $('#my-view');
var widget = kendo.widgetInstance(view);
widget.bind('show', showHandler);
答案 1 :(得分:0)
更好的回答,只需自己委派事件,以便问题中的代码真正起作用:
<div data-role="view" ... data-show="onShow">...</div>
和
function onShow () {
this.element.trigger('show');
}
现在它的工作原理:)。我仍然存在的问题是,如果第一个显示视图,则首次显示视图时不会触发“显示”。呃,所以是的,我不得不为此添加一些额外的代码:
if ($('#my-view').is(':visible')) {
$('#my-view').trigger('show');
}
Lame但它确实有效。