JavaScript

使用 data 属性将 JavaScript 应用于 UIkit 组件

您可以通过仅向 HTML 元素添加 data-uk-* 属性来使用所有 UIkit 组件,而无需编写任何 JavaScript 代码。 这是 UIkit 使用其组件的最佳实践,应始终优先考虑。

标记

<button data-uk-button>My Button</button>

当然,您仍然可以通过 UIkit API 使用这些组件。

标记

UIkit.button($(".button"), {/* options */});

AMD 支持

AMD(异步模块定义)是一种定义 JavaScript 模块及其依赖关系的方法,以便它们可以异步加载。

用法

/* Simple require of the UIkit core */
require("path/to/uikit.js", function(UI){

    // UI is the global UIkit object a.k.a. $.UIkit

});

自动加载 UIkit 及其组件

/* setup require.js first */
requirejs.config({

    paths: {
        "uikit": 'path/to/uikit.js'
    },

    config: {
        "uikit": {
            "base": "path/to/uikit_dist_folder"
        }
    }

});

/* now you can autoload uikit core + components separated by a comma */
require("uikit!notify,sortable", function(UI){

    // access loaded components: UI.notify, UI.sortable

});

覆盖默认组件设置。

可以调整默认组件设置,如以下示例所示。

用法


                            // override default tooltip settings
                            UIkit.on('beforeready.uk.dom', function(){

                                $.extend(UIkit.components.tooltip.prototype.defaults, {
                                    pos: 'top',
                                    delay: 500,
                                    animation: true
                                });
                            });
                            

自动初始化新添加的组件,例如通过 AJAX 或响应式框架。

如果您通过 JavaScript 将动态 HTML 标记注入到 DOM 中,UIKit JavaScript 组件将通过 data-uk-* 属性自动初始化。

您可以通过 UIkit.domObserve 方法手动向 DOM 添加一个观察器。

通过 JavaScript 观察一个元素

UIkit.domObserve('#element', function(element) { /* apply on dom change within element */ })

检查显示事件的可见性更改。

有时,诸如 GridTab 之类的组件会在标记中被隐藏。 当与 SwitcherModalDropdown 结合使用时可能会发生这种情况。 一旦它们变得可见,就需要重新计算以调整或修复高度和其他尺寸。

为此,请将 data-uk-check-display 属性添加到需要重新计算的元素。 它们现在监听 display.uk.check 事件,该事件将由容器组件(例如 Switcher)触发。 这对于带有 data-uk-margindata-uk-grid-margindata-uk-grid-match 属性的元素不需要,这些属性将默认触发。

用法


                            <!-- Element within a modal, switcher or dropdown -->
                            <div id="myelement" data-uk-check-display>...</div>

                            <script>
                            $("#myelement").on('display.uk.check', function(){
                               // custom code to adjust height etc on show
                            });
                            </script>