📜  jQWidgets jqxPopover isModal 属性(1)

📅  最后修改于: 2023-12-03 15:02:20.175000             🧑  作者: Mango

jQWidgets jqxPopover isModal 属性

简介

jqxPopover 是 jQWidgets 的一个小部件(widget),用于在网页上显示一些基于超链接或鼠标事件触发的弹出框。它的 isModal 属性定义了该弹出框是否在显示时应该阻止页面上其它元素的操作。

语法

isModal 属性需要一个布尔类型的值。其默认值为 false,也就是说,在 jqxPopover 弹出框显示时,页面上其它元素仍然可以被点击、输入等。只有在将该属性设置为 true 时, jqxPopover 才会具有模态(modal)的特性。

$('#popover').jqxPopover({
    isModal: true
});
用法举例
<!DOCTYPE html>
<html>
<head>
    <title>jqxPopover Demo</title>
    <!-- 引入 jQWidgets 样式文件 -->
    <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" />
    <!-- 引入 jQWidgets JavaScript 库 -->
    <script type="text/javascript" src="../../scripts/gettheme.js"></script>
    <script type="text/javascript" src="../../scripts/jquery-1.11.1.min.js"></script>
    <script type="text/javascript" src="../../scripts/jqxcore.js"></script>
    <script type="text/javascript" src="../../scripts/jqxbuttons.js"></script>
    <script type="text/javascript" src="../../scripts/jqxpopover.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            // 初始时把按钮禁用
            $('#open').jqxButton({ disabled: true });

            // 定义弹出框的内容和配置信息
            $('#popover').jqxPopover({
                title: '提示信息',
                content: '确定要执行此操作吗?',
                position: 'bottom',
                autoClose: false,
                isModal: true,
                initContent: function () {
                    // 给按钮绑定事件,在弹出框上点击“确定”时触发
                    $('#confirm').jqxButton();
                    $('#confirm').on('click', function () {
                        // 可以在这里执行一些操作,例如发送 AJAX 请求等

                        // 隐藏弹出框
                        $('#popover').jqxPopover('close');
                    });
                }
            });

            // 给触发弹出框的按钮绑定事件
            $('#show').jqxButton();
            $('#show').on('click', function () {
                $('#open').jqxButton({ disabled: false });
                $('#popover').jqxPopover('open');
            });

            // 给“开启/关闭模态”复选框绑定事件
            $('#modal').on('change', function () {
                var checked = $(this).is(':checked');
                $('#popover').jqxPopover({ isModal: checked });
            });
        });
    </script>
</head>
<body class='default'>
    <div style="margin: 50px;">
        <!-- 触发弹出框的按钮 -->
        <div id="show">点击这里</div>
        <div id="open" style="margin-top: 10px;">打开弹出框</div>

        <!-- 弹出框 -->
        <div id="popover">
            <div style="padding: 8px;">
                <div id="content" style="padding: 10px; text-align: center;">...</div>
                <div style="text-align: center;">
                    <button id="confirm">确定</button>
                    <button id="cancel">取消</button>
                </div>
            </div>
        </div>

        <!-- 控制模态属性的复选框 -->
        <div style="margin-top: 20px;">
            <input type="checkbox" id="modal" /> <label for="modal">开启/关闭模态</label>
        </div>
    </div>
</body>
</html>

上面的代码定义了一个简单的页面,其中有一个 jqxPopover 弹出框,里面包含一个确认按钮、一个取消按钮,以及一个复选框用于控制该弹出框的 isModal 属性。页面中还有两个按钮,全程禁用状态,只有在点击 “点击这里” 后才会变为可点击状态,打开弹出框并显示其中的内容。在 jqxPopover 被打开时,如果开启了模态,则页面上其它元素将无法被点击、输入等;否则页面上其它元素仍然可以操作。用户可以勾选/取消勾选模态复选框,观察模态开启/关闭时页面的表现。