# 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>
```
- UIkit 中文文档
- 开始使用
- 初学者
- 开始使用
- 如何自定义
- 布局示例
- 开发者
- 项目结构
- Less & Sass 文件
- 创建主题
- 创建样式
- Customizer.json
- JavaScript
- 自定义前缀
- 核心组件
- 默认
- 基础
- 打印
- 布局类组件
- 网格
- 面板/Panel
- 块/Block
- 文章
- 评论/Comment
- 效果/Utility
- Flex 布局
- 覆盖/Cover
- 导航类组件
- 导航菜单
- 导航栏
- 二级导航
- 面包屑/Breadcrumb
- 分页
- 选项卡
- 缩略图导航/Thumbnav
- 页面元素
- 列表
- 描述列表
- 表格
- 表单
- 常用组件
- 按钮
- 图标
- 关闭/Close
- 徽章/Badge
- 提示框
- 缩略图/Thumbnail
- 遮罩/Overlay
- 文本
- 列
- 动画
- 对比度/Contrast
- JAVASCRIPT组件
- 下拉菜单
- 模态对话框
- 抽屉/Off-canvas
- 切换器/Switcher
- 拨动/toggle
- 滚动监听/Scrollspy
- 平滑滚动
- 附加组件
- 布局类组件
- 动态网格
- 视差网格
- 导航类组件
- 圆点导航
- 滑动导航/Slidenav
- 动态分页
- 常用组件
- 高级表单
- 文件表单/Form file
- 密码表单
- 选择表单
- 占位符
- 进度条/Progress
- JAVASCRIPT组件
- 灯箱/Lightbox
- 自动完成/Autocomplete
- 日期选择器/Datepicker
- HTML 编辑器
- 滚动条/Slider
- 滑块集/Slideset
- 幻灯片/Slideshow
- 视差/Parallax
- 手风琴/Accordion
- 通知/Notify
- 搜索/Search
- 可嵌套/Nestable
- 可排序/Sortable
- 附着/Sticky
- 时间选择器
- 工具提示/Tooltip
- 上传