$('#my-view').on('show', showHandler)
如何添加事件監聽器到Kendo UI視圖?
不起作用。使用data-show不是一個選項,因爲設置/取消設置事件的代碼位於稍後實例化的類中。以編程方式創建視圖並傳入事件處理程序也不起作用,因爲我需要在不同的時間設置事件開啓/關閉。
這不可能與kendoUI?如果不是,爲什麼?這似乎是一個非常明顯的功能,將這些事件轉發給元素本身,類似於jQuery UI小部件的可能性。
$('#my-view').on('show', showHandler)
如何添加事件監聽器到Kendo UI視圖?
不起作用。使用data-show不是一個選項,因爲設置/取消設置事件的代碼位於稍後實例化的類中。以編程方式創建視圖並傳入事件處理程序也不起作用,因爲我需要在不同的時間設置事件開啓/關閉。
這不可能與kendoUI?如果不是,爲什麼?這似乎是一個非常明顯的功能,將這些事件轉發給元素本身,類似於jQuery UI小部件的可能性。
這工作:
var view = $('#my-view');
var widget = kendo.widgetInstance(view);
widget.bind('show', showHandler);
更好的答案,只是自己委派事件,以便在問題的代碼的實際工作:
<div data-role="view" ... data-show="onShow">...</div>
和
function onShow() {
this.element.trigger('show');
}
現在,它的工作原理:)。我仍然存在的問題是,如果顯示的是第一個視圖,則首次顯示視圖時不會觸發'show'。呃,所以是我不得不添加一些額外的代碼也太像這樣:
if ($('#my-view').is(':visible')) {
$('#my-view').trigger('show');
}
跛,但它的工作原理。
但是,視圖窗口小部件只有在顯示後纔會創建!所以如果你在視圖第一次顯示之前調用widgetInstance,你將會得到未定義的widget而不是有問題的widget。 – eagspoo