2014-09-02 123 views
0

我可以通過點擊菜單成功打開Kendo窗口。我需要的是,如果我點擊這個窗口上的一個按鈕,它應該動態創建一個iframe並附加到一個div並將這個新的div附加到父容器,並顯示爲一個新窗口,就像我打開它從菜單中。如何從其他窗口打開Kendo ui窗口?

我可以成功地將iframe和div添加到父級,但是當我打開窗口時,它在我所在的窗口內打開,而不是從父容器打開。我的代碼如下:

$("#btn").click(function() { 

     var k = "<div id='kk'><iframe style='height:600px;width:900px'></div>"; 
     $("#menuDiv", parent.document).append(k); 

     $("#kk", parent.document).kendoWindow(); 
    }); 
+0

一個窗口內的窗口?你最終的目標是什麼?也許有一個更簡單的方法。 – OnaBai 2014-09-02 14:28:49

+0

嗨Onabai,我的菜單中包含一個子菜單,其中有100個不同的項目。如果我在菜單中顯示它,它會看起來很醜。我的目標是將這些菜單項分開,並在網格中顯示所有菜單名稱,並且當單擊它顯示的一個項目時,就好像我單擊了菜單項 – sony 2014-09-02 14:34:40

+0

中的一個,但不需要在另一個窗口內有一個窗口,或者與iframe一起使用。如果只是從另一個窗口打開請讓我知道,我認爲我可以幫助 – OnaBai 2014-09-02 15:03:11

回答

1

明知窗口,儘管包含它,從另外一個甚至動態生成打開的窗口中的內容打開這是很簡單的HTML元素的浮動。

由於包含原始窗口下面的HTML代碼:

$("#open").on("click", function() { 
    var w2 = $("<div>Window2</div>"); 
    $("#container").append(w2); 
    w2.kendoWindow({}); 
}); 

如果我們追加第二個窗口(w2)動態生成:

<div id="container"> 
    <div id="win1"> 
     <h1>Window 1</h1> 
     <button id="open" class="k-button">Open</button> 
    </div> 
</div> 

我們定義了一個click處理程序按鈕到第一個窗口的container,然後我們將它初始化爲kendoWindow

我們可能已經添加了第二個窗口的第一個是這樣做的:

$("#open").on("click", function() { 
    var w2 = $("<div>Window2</div>"); 
    w1.element.append(w2); 
    w2.kendoWindow({}); 
}); 

哪裏w1var w1 = $("#menuDiv").data("kendoWindow");但沒有任何差別,因爲窗口是浮動並不受限於它的父HTML節點元素。

你可以看到它在這裏的行動:http://jsfiddle.net/OnaBai/juunjch1/

如果你想要那個打開的窗口中的內容是iframe你實際上應該與iframe設置選項true創建window。喜歡的東西:

$("#open").on("click", function() { 
    var w2 = $("<div>Window2</div>"); 
    $("#container").append(w2); 
    w2.kendoWindow({ 
     content: "http://www.telerik.com", 
     iframe: true 
    }); 
}); 

而且你可以在這裏看到:http://jsfiddle.net/OnaBai/juunjch1/2/

+0

好的解決方案中使用劍道網格對它排序...感謝OnaBai – sony 2014-09-02 15:58:59