2015-01-09 2 views
0

Я новичок в Kendo Window, и я планирую объявить функцию window.resize() как глобальную функцию jquery для всех окон Kendo на страницах. Как я могу объявить это?Добавление глобальной функции для окна пользовательского интерфейса Kendo

Я добавил этот код ниже на .js файла и ссылки его в _Layout.cshtml, но он не работает:

$(window).resize(function() { 
    $(".k-window").kendoWindow().center(); 
}); 

При индивидуальном использовании, я использую этот набор кода:

var modal = $("#mdlWindow").kendoWindow({ 
    visible: false, 
    resizable: true, 
    modal: true, 
    content: "../Position/Info, 
    width: "50%", 
    height: "50%", 
    maxWidth: 500, 
    maxHeight: 600, 
    minWidth: 300, 
    minHeight: 400, 
    top: 0, 
    bottom: 0, 
    left: 0, 
    right: 0, 
    iframe: true 
}).data("kendoWindow"); 

modal.center().open(); 

$(window).resize(function() { 
    modal.center(); 
}); 

Любые предложения принимаются. Если есть способ сделать это в css, я попробую.

ответ

1

Во-первых, окно Kendo - это особый виджет Kendo UI, в котором элемент виджета не имеет класса k-window, но k-window-content. Класс k-window добавляет в контейнер элементов.

Во-вторых, чтобы получить экземпляр Kendo Window, вы используете метод .data('kendoWindow') вместо .kendoWindow().

И, наконец, если у вас будет более одного окна, вы должны выполнить итерацию для каждого из них, чтобы выполнить действие индивидуально.

Поэтому ваш код центровки все окна Кендо на window.resize() событие должно выглядеть:

$(window).resize(function() { 
    var windows = $(".k-window-content"); 
    windows.each(function(i,v){ 
     $(v).data("kendoWindow").center(); 
    }); 
}); 

Вот Кендо UI Dojo пример: http://dojo.telerik.com/OjuwU

Смежные вопросы