獲取layer.open彈出層的返回值


正在開發的車聯網項目用到了layer API。當我在開發“新建電子圍欄”的時候需要彈出地圖,用戶在地圖中畫一個區域,最后將這個彈出層的數據返回給原頁面。下面是我的實現過:程:

觸發彈出層的代碼:

                layer.open({
                    type: 2,
                    title: "設置圍欄",
                    shadeClose: true,
                    shade: 0.4,
                    area: ['90%', '90%'],
                    content: "/ElectronicFence/Map?id=" + id + "&shapeType=" + shapeType,
                    btn: ['確定','關閉'],
                    yes: function(index){
                        //當點擊‘確定’按鈕的時候,獲取彈出層返回的值
                        var res = window["layui-layer-iframe" + index].callbackdata();
                        //打印返回的值,看是否有我們想返回的值。
                        console.log(res);
                        //最后關閉彈出層
                        layer.close(index);
                    },
                    cancel: function(){
                        //右上角關閉回調
                    }
                });

注意:

var res = window["layui-layer-iframe" + index].callbackdata();
這行代碼中‘
callbackdata’是彈出層里面定義的函數。也許我們知道了什么!這個函數的作用就是返回值。

彈出層中定義返回值的函數:

    <script type="text/javascript">
        var map = new AMap.Map("container", {
            resizeEnable: true
        });
        //在地圖中添加MouseTool插件
        var mouseTool = new AMap.MouseTool(map);
        AMap.event.addDomListener(document.getElementById('point'), 'click', function () {
            mouseTool.marker({ offset: new AMap.Pixel(-14, -11) });
        }, false);
        AMap.event.addDomListener(document.getElementById('line'), 'click', function () {
            mouseTool.polyline();
        }, false);
        AMap.event.addDomListener(document.getElementById('polygon'), 'click', function () {
            mouseTool.polygon();
        }, false);


        var callbackdata = function () {
            var data = {
                username: 'zhangfj'
            };
            return data;
        }
    </script>

上面的代碼就是彈出層里面的JavaScript代碼,里面定義了函數'callbackdata' 用來返回值給調用彈出層的頁面。

 

當我們點擊彈出層的“確定”按鈕的時候,就可以通過'callbackdata'函數獲取彈出層的返回值:

 F12 查看console.log(res);的輸出結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM