2013-11-24 51 views
0

$('#my-view').on('show', showHandler) 如何添加事件監聽器到Kendo UI視圖?

不起作用。使用data-show不是一個選項,因爲設置/取消設置事件的代碼位於稍後實例化的類中。以編程方式創建視圖並傳入事件處理程序也不起作用,因爲我需要在不同的時間設置事件開啓/關閉。

這不可能與kendoUI?如果不是,爲什麼?這似乎是一個非常明顯的功能,將這些事件轉發給元素本身,類似於jQuery UI小部件的可能性。

回答

0

這工作:

var view = $('#my-view'); 
var widget = kendo.widgetInstance(view); 
widget.bind('show', showHandler); 
+0

但是,視圖窗口小部件只有在顯示後纔會創建!所以如果你在視圖第一次顯示之前調用widgetInstance,你將會得到未定義的widget而不是有問題的widget。 – eagspoo

0

更好的答案,只是自己委派事件,以便在問題的代碼的實際工作:

<div data-role="view" ... data-show="onShow">...</div> 

function onShow() { 
    this.element.trigger('show'); 
} 

現在,它的工作原理:)。我仍然存在的問題是,如果顯示的是第一個視圖,則首次顯示視圖時不會觸發'show'。呃,所以是我不得不添加一些額外的代碼也太像這樣:

if ($('#my-view').is(':visible')) { 
    $('#my-view').trigger('show'); 
} 

跛,但它的工作原理。

相關問題