1. 程式人生 > >layer.open中使用時間控制元件laydate失敗的解決方案

layer.open中使用時間控制元件laydate失敗的解決方案

今天有個需要,使用者進入頁面的時候,彈出一個彈窗,彈窗中選擇一個時間,彈窗大概是這樣的:
這裡寫圖片描述
我的思路是,先在頁面寫好彈窗內容,然後使用lay.open設定content即可:

<div id="layopen">
    時間:<input type="text" id="time"></input>
</div>

layer.open({
    content: $("#layout").html(),
    success: function(){
        laydate({
            "elem": "#time"
}); } });

執行,發現無論怎麼點選輸入框,時間控制元件都出不來,也就是說,這種寫法下,laydate失效了。然後在官網中找到一個帖子上說,把content: $("#layout").html()改成content: $("#layout")即可,驚喜的發現真的可以,效果如下:
這裡寫圖片描述

效果是實現了,可是頂部的[object object]是什麼鬼?

一開始,通過css將頂部的[object object]隱藏了,但是總覺得很彆扭。然後經過一番折騰之後發現,其實只要指定下層的型別為頁面層就可以完美的解決這個問題:

layer.open({
    layer
: 1, content: $("#layout").html(), success: function(){ laydate({ "elem": "#time" })
; }
});

注:使用的版本分別為layer3.x.x.,laydate1.x.x,其他版本搭配是否可以直接設定時間未測試。