# JavaScript 使用 data 属性,将JavaScript应用于 UIkit 的组件。 你只需要在HTML元素中添加 `data-uk-*` 属性就能使用所有的UIKIT组件,而无需无需编写一行 JavaScript。这是在 UIkit 中使用任意组件时应当首先考虑的最佳做法。 ### Markup ``` <button data-uk-button>My Button</button> ``` 当然你仍然可以通过使用 JQuery 的 API 来使用这些组件。 ### Markup ``` $(".button").uk("button"); ``` * * * ## AMD 支持 AMD (异步模块定义) 是一种定义 JavaScript 模块以及模块之间的依赖性的方式,因此他们可以通过异步加载的方式来使用。 ### 用法 ``` /* UIkit 核心的简单请求 */ require("path/to/uikit.js", function(UI){ // UI 是UIkit的全局对象,又名 $.UIkit }); ``` ### 自动加载 UIkit 及附加组件 ``` /* 首先建立 require.js */ requirejs.config({ paths: { "uikit": 'path/to/uikit.js' }, config: { "uikit": { "base": "path/to/uikit_dist_folder" } } }); /* 现在,你可以自动加载UIkit和附加组件了,用逗号隔开。 */ require("uikit!notify,sortable", function(UI){ // 访问已加载的附加组件: UI.notify, UI.sortable }); ``` * * * ## 覆写默认的组件设置 调整默认的组件设置是可行的,你可以看一下下面的例子: ### 用法 ``` // 覆写默认的工具提示设置 UIkit.on('beforeready.uk.dom', function(){ $.extend(UIkit.components.tooltip.prototype.defaults, { pos: 'top', delay: 500, animation: true }); }); ``` * * * ## 监视DOM,通过诸如AJAX的方式自动初始化新添加的组件。 如果你希望通过JavaScript动态地将HTML标签注入到DOM中,只需要添加 `data-uk-observe` 属性到一个父元素中,就能自动地初始化UIkit的JavaScript组件。 ### 用法 ``` <div data-uk-observe> <!-- 在此注入你的动态HTML --> </div> ``` ### 通过JavaScript监视元素 ``` UIkit.domObserve('#element', function(element) { /* 适用于元素内部的DOM改变 */ }) ``` * * * ## 基于可见性变化,检测显示事件/Check Display event on visibility change. 有时,一些组件,比如 [网格](grid.html) 或 [选项卡](tab.html) 被隐藏在标签中。这或许是与 [切换器](switcher.html), [模态对话框](modal.html) 或者 [下拉菜单](dropdown.html) 组合使用是发生的。一旦它们变得可见,他们需要被重新计算修改高度或者其他外形尺寸。 为此,添加 `data-uk-check-display` 属性到需要重新处理的元素中。现在,它们监听由容器组件触发的 `display.uk.check` 事件,比如切换器。带有 `data-uk-margin`, `data-uk-grid-margin` 和 `data-uk-grid-match` 属性的元素不需要添加这个属性,因为它此时是默认触发的。 ### Usage ``` <!-- 一个位于模态对话框、切换器或者下拉菜单中的元素 --> <div id="myelement" data-uk-check-display>...</div> <script> $("#myelement").on('display.uk.check', function(){ // 自定义的代码,用于调整显示的高度等 }); </script> ```