dropdown.html 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>镜像站@下拉菜单组件文档 - Layui</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  9. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  10. <meta name="apple-mobile-web-app-capable" content="yes">
  11. <meta name="format-detection" content="telephone=no">
  12. <script>
  13. ;!function(){self!==parent&&(location.href="http://www.baidu.com/")}();
  14. </script>
  15. <link rel="stylesheet" href="/public/layui/dist/css/layui.css" tppabs="http://res.layui.com/layui/dist/css/layui.css?t=1632428048355" media="all">
  16. <link rel="stylesheet" href="/public/static/css/global.css" tppabs="http://res.layui.com/static/css/global.css?t=1632428048355-19" media="all">
  17. </head>
  18. <body>
  19. <div class="layui-header header header-doc" autumn>
  20. <div class="layui-container">
  21. <a class="logo" href="../../index.html" tppabs="http://www.layui.com/">
  22. <img src="/public/static/images/layui/logo.png" tppabs="http://res.layui.com/static/images/layui/logo.png" alt="layui">
  23. </a>
  24. <div class="layui-form layui-hide-xs component" lay-filter="LAY-site-header-component"></div>
  25. <div class="layui-hide-xs site-notice"></div>
  26. <ul class="layui-nav" id="LAY_NAV_TOP">
  27. <li class="layui-nav-item layui-this">
  28. <a href="../index.html" tppabs="http://www.layui.com/doc/">文档</a>
  29. </li>
  30. <li class="layui-nav-item ">
  31. <a href="../../demo/index.html" tppabs="http://www.layui.com/demo/">示例</a>
  32. </li>
  33. <li class="layui-nav-item">
  34. <a href="javascript:;">
  35. <!--<span class="layui-badge-dot" style="left:0; right: auto; margin: -4px 0 0 5px;"></span>-->
  36. 周边
  37. </a>
  38. <dl class="layui-nav-child layui-nav-child-c">
  39. <dd class="layui-hide-sm layui-show-xs" lay-unselect>
  40. <a href="https://gitee.com/sentsin/layui/issues" target="_blank" rel="nofollow">问题反馈</a>
  41. <hr>
  42. </dd>
  43. <dd lay-unselect><a href="../../alone.html" tppabs="http://www.layui.com/alone.html" target="_blank" lay-unselect>独立组件</a></dd>
  44. <dd lay-unselect><a href="../../../fly.layui.com/extend/index.html" target="_blank">扩展组件</a></dd>
  45. </dl>
  46. </li>
  47. <li class="layui-nav-item layui-hide-xs">
  48. <a href="http://gitee.com/sentsin/layui/issues" target="_blank" rel="nofollow">反馈</a>
  49. </li>
  50. </ul>
  51. </div>
  52. </div>
  53. <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
  54. <!--[if lt IE 9]>
  55. <script src="../../../other/html5shiv/r29/html5.min.js" tppabs="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
  56. <script src="../../../other/respond.js/1.4.2/respond.min.js" tppabs="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
  57. <![endif]-->
  58. <ul class="site-dir">
  59. <li><a href="#use"><cite>快速使用</cite></a></li>
  60. <li><a href="#options"><cite>基础参数</cite></a></li>
  61. <li><a href="#data"><cite>菜单项参数</cite></a></li>
  62. <li><a href="#onclick"><cite>菜单被点击的回调</cite></a></li>
  63. <li><a href="#templet"><cite>自定义菜单项模板</cite></a></li>
  64. <li><a href="#contextmenu"><cite>右键菜单</cite></a></li>
  65. <li><a href="../../demo/dropdown.html" tppabs="http://www.layui.com/demo/dropdown.html" target="_blank"><cite>查看组件示例</cite></a></li>
  66. </ul>
  67. <div class="layui-container layui-row">
  68. <div class="layui-col-md3">
  69. <div class="layui-panel site-menu">
  70. <ul class="layui-menu layui-menu-lg">
  71. <li class="layui-menu-item-group" lay-options="{type: 'group', isAllowSpread: true}">
  72. <div class="layui-menu-body-title">
  73. 基础说明
  74. </div>
  75. <hr>
  76. <ul>
  77. <li class="">
  78. <div class="layui-menu-body-title">
  79. <a href="../index.html" tppabs="http://www.layui.com/doc/">
  80. <span>开始使用 </span>
  81. <span class="layui-font-12 layui-font-gray">Getting Started</span>
  82. </a>
  83. </div>
  84. </li>
  85. <li class="">
  86. <div class="layui-menu-body-title">
  87. <a href="../base/infrastructure.html" tppabs="http://www.layui.com/doc/base/infrastructure.html">
  88. <span>底层方法 </span>
  89. <span class="layui-font-12 layui-font-gray">基础支撑</span>
  90. </a>
  91. </div>
  92. </li>
  93. <li class="">
  94. <div class="layui-menu-body-title">
  95. <a href="../base/element.html" tppabs="http://www.layui.com/doc/base/element.html">
  96. <span>页面元素 </span>
  97. <span class="layui-font-12 layui-font-gray">规范 公共类 属性</span>
  98. </a>
  99. </div>
  100. </li>
  101. <li class="">
  102. <div class="layui-menu-body-title">
  103. <a href="../base/modules.html" tppabs="http://www.layui.com/doc/base/modules.html">
  104. <span>模块规范 </span>
  105. <span class="layui-font-12 layui-font-gray">使用 扩展</span>
  106. </a>
  107. </div>
  108. </li>
  109. <li class="">
  110. <div class="layui-menu-body-title">
  111. <a href="../base/faq.html" tppabs="http://www.layui.com/doc/base/faq.html">
  112. <span>常见问题 </span>
  113. <span class="layui-font-12 layui-font-gray">FAQ</span>
  114. </a>
  115. </div>
  116. </li>
  117. <li class="">
  118. <div class="layui-menu-body-title">
  119. <a href="../base/changelog.html" tppabs="http://www.layui.com/doc/base/changelog.html">
  120. <span>更新日志 </span>
  121. <span class="layui-font-12 layui-font-gray">changelog</span>
  122. <span class="layui-badge-dot"></span>
  123. </a>
  124. </div>
  125. </li>
  126. </ul>
  127. </li>
  128. <li class="layui-menu-item-group" lay-options="{type: 'group', isAllowSpread: true}">
  129. <div class="layui-menu-body-title">
  130. 页面元素
  131. </div>
  132. <hr>
  133. <ul>
  134. <li class="">
  135. <div class="layui-menu-body-title">
  136. <a href="../element/layout.html" tppabs="http://www.layui.com/doc/element/layout.html">
  137. <span>布局 </span>
  138. <span class="layui-font-12 layui-font-gray">栅格 后台管理布局</span>
  139. </a>
  140. </div>
  141. </li>
  142. <li class="">
  143. <div class="layui-menu-body-title">
  144. <a href="../element/color.html" tppabs="http://www.layui.com/doc/element/color.html">
  145. <span>颜色 </span>
  146. <span class="layui-font-12 layui-font-gray">主色调 颜色搭配</span>
  147. </a>
  148. </div>
  149. </li>
  150. <li class="">
  151. <div class="layui-menu-body-title">
  152. <a href="../element/icon.html" tppabs="http://www.layui.com/doc/element/icon.html">
  153. <span>图标 </span>
  154. <span class="layui-font-12 layui-font-gray">iconfont 字体图标</span>
  155. </a>
  156. </div>
  157. </li>
  158. <li class="">
  159. <div class="layui-menu-body-title">
  160. <a href="../element/anim.html" tppabs="http://www.layui.com/doc/element/anim.html">
  161. <span>动画 </span>
  162. <span class="layui-font-12 layui-font-gray">内置 CSS3 动画</span>
  163. </a>
  164. </div>
  165. </li>
  166. <li class="">
  167. <div class="layui-menu-body-title">
  168. <a href="../element/button.html" tppabs="http://www.layui.com/doc/element/button.html">
  169. <span>按钮 </span>
  170. <span class="layui-font-12 layui-font-gray">button</span>
  171. </a>
  172. </div>
  173. </li>
  174. <li class="">
  175. <div class="layui-menu-body-title">
  176. <a href="../element/form.html" tppabs="http://www.layui.com/doc/element/form.html">
  177. <span>表单 </span>
  178. <span class="layui-font-12 layui-font-gray">form 元素集合</span>
  179. </a>
  180. </div>
  181. </li>
  182. <li class="">
  183. <div class="layui-menu-body-title">
  184. <a href="../element/nav.html" tppabs="http://www.layui.com/doc/element/nav.html">
  185. <span>导航 </span>
  186. <span class="layui-font-12 layui-font-gray">nav 面包屑</span>
  187. </a>
  188. </div>
  189. </li>
  190. <li class="">
  191. <div class="layui-menu-body-title">
  192. <a href="../element/menu.html" tppabs="http://www.layui.com/doc/element/menu.html">
  193. <span>菜单 </span>
  194. <span class="layui-font-12 layui-font-gray">menu 基础菜单</span>
  195. <span class="layui-badge-dot"></span>
  196. </a>
  197. </div>
  198. </li>
  199. <li class="">
  200. <div class="layui-menu-body-title">
  201. <a href="../element/tab.html" tppabs="http://www.layui.com/doc/element/tab.html">
  202. <span>选项卡 </span>
  203. <span class="layui-font-12 layui-font-gray">Tabs 切换</span>
  204. </a>
  205. </div>
  206. </li>
  207. <li class="">
  208. <div class="layui-menu-body-title">
  209. <a href="../element/progress.html" tppabs="http://www.layui.com/doc/element/progress.html">
  210. <span>进度条 </span>
  211. <span class="layui-font-12 layui-font-gray">progress</span>
  212. </a>
  213. </div>
  214. </li>
  215. <li class="">
  216. <div class="layui-menu-body-title">
  217. <a href="../element/panel.html" tppabs="http://www.layui.com/doc/element/panel.html">
  218. <span>面板 </span>
  219. <span class="layui-font-12 layui-font-gray">panel 卡片 折叠</span>
  220. </a>
  221. </div>
  222. </li>
  223. <li class="">
  224. <div class="layui-menu-body-title">
  225. <a href="../element/table.html" tppabs="http://www.layui.com/doc/element/table.html">
  226. <span>表格 </span>
  227. <span class="layui-font-12 layui-font-gray">静态 table</span>
  228. </a>
  229. </div>
  230. </li>
  231. <li class="">
  232. <div class="layui-menu-body-title">
  233. <a href="../element/badge.html" tppabs="http://www.layui.com/doc/element/badge.html">
  234. <span>徽章 </span>
  235. <span class="layui-font-12 layui-font-gray">小圆点 小边框</span>
  236. </a>
  237. </div>
  238. </li>
  239. <li class="">
  240. <div class="layui-menu-body-title">
  241. <a href="../element/timeline.html" tppabs="http://www.layui.com/doc/element/timeline.html">
  242. <span>时间线 </span>
  243. <span class="layui-font-12 layui-font-gray">timeline</span>
  244. </a>
  245. </div>
  246. </li>
  247. <li class="">
  248. <div class="layui-menu-body-title">
  249. <a href="../element/auxiliar.html" tppabs="http://www.layui.com/doc/element/auxiliar.html">
  250. <span>辅助 </span>
  251. <span class="layui-font-12 layui-font-gray">引用 字段集 横线等</span>
  252. </a>
  253. </div>
  254. </li>
  255. </ul>
  256. </li>
  257. <li class="layui-menu-item-group" lay-options="{type: 'group', isAllowSpread: true}">
  258. <div class="layui-menu-body-title">
  259. 内置模块
  260. </div>
  261. <hr>
  262. <ul>
  263. <li class="">
  264. <div class="layui-menu-body-title">
  265. <a href="layer.html" tppabs="http://www.layui.com/doc/modules/layer.html">
  266. <span>弹出层 </span>
  267. <span class="layui-font-12 layui-font-gray">layer</span>
  268. </a>
  269. </div>
  270. </li>
  271. <li class="">
  272. <div class="layui-menu-body-title">
  273. <a href="laydate.html" tppabs="http://www.layui.com/doc/modules/laydate.html">
  274. <span>日期与时间选择 </span>
  275. <span class="layui-font-12 layui-font-gray">laydate</span>
  276. </a>
  277. </div>
  278. </li>
  279. <li class="">
  280. <div class="layui-menu-body-title">
  281. <a href="laypage.html" tppabs="http://www.layui.com/doc/modules/laypage.html">
  282. <span>分页 </span>
  283. <span class="layui-font-12 layui-font-gray">laypage</span>
  284. </a>
  285. </div>
  286. </li>
  287. <li class="">
  288. <div class="layui-menu-body-title">
  289. <a href="laytpl.html" tppabs="http://www.layui.com/doc/modules/laytpl.html">
  290. <span>模板引擎 </span>
  291. <span class="layui-font-12 layui-font-gray">laytpl</span>
  292. </a>
  293. </div>
  294. </li>
  295. <li class="">
  296. <div class="layui-menu-body-title">
  297. <a href="table.html" tppabs="http://www.layui.com/doc/modules/table.html">
  298. <span>数据表格 </span>
  299. <span class="layui-font-12 layui-font-gray">table</span>
  300. </a>
  301. </div>
  302. </li>
  303. <li class="">
  304. <div class="layui-menu-body-title">
  305. <a href="form.html" tppabs="http://www.layui.com/doc/modules/form.html">
  306. <span>表单 </span>
  307. <span class="layui-font-12 layui-font-gray">form</span>
  308. </a>
  309. </div>
  310. </li>
  311. <li class="">
  312. <div class="layui-menu-body-title">
  313. <a href="upload.html" tppabs="http://www.layui.com/doc/modules/upload.html">
  314. <span>文件上传 </span>
  315. <span class="layui-font-12 layui-font-gray">upload</span>
  316. </a>
  317. </div>
  318. </li>
  319. <li class="layui-menu-item-checked2">
  320. <div class="layui-menu-body-title">
  321. <a href="dropdown.html" tppabs="http://www.layui.com/doc/modules/dropdown.html">
  322. <span>下拉菜单 </span>
  323. <span class="layui-font-12 layui-font-gray">dropdown</span>
  324. </a>
  325. </div>
  326. </li>
  327. <li class="">
  328. <div class="layui-menu-body-title">
  329. <a href="transfer.html" tppabs="http://www.layui.com/doc/modules/transfer.html">
  330. <span>穿梭框 </span>
  331. <span class="layui-font-12 layui-font-gray">transfer</span>
  332. </a>
  333. </div>
  334. </li>
  335. <li class="">
  336. <div class="layui-menu-body-title">
  337. <a href="tree.html" tppabs="http://www.layui.com/doc/modules/tree.html">
  338. <span>树形组件 </span>
  339. <span class="layui-font-12 layui-font-gray">tree</span>
  340. </a>
  341. </div>
  342. </li>
  343. <li class="">
  344. <div class="layui-menu-body-title">
  345. <a href="colorpicker.html" tppabs="http://www.layui.com/doc/modules/colorpicker.html">
  346. <span>颜色选择器 </span>
  347. <span class="layui-font-12 layui-font-gray">colorpicker</span>
  348. </a>
  349. </div>
  350. </li>
  351. <li class="">
  352. <div class="layui-menu-body-title">
  353. <a href="element.html" tppabs="http://www.layui.com/doc/modules/element.html">
  354. <span>常用元素操作 </span>
  355. <span class="layui-font-12 layui-font-gray">element</span>
  356. </a>
  357. </div>
  358. </li>
  359. <li class="">
  360. <div class="layui-menu-body-title">
  361. <a href="slider.html" tppabs="http://www.layui.com/doc/modules/slider.html">
  362. <span>滑块 </span>
  363. <span class="layui-font-12 layui-font-gray">slider</span>
  364. </a>
  365. </div>
  366. </li>
  367. <li class="">
  368. <div class="layui-menu-body-title">
  369. <a href="rate.html" tppabs="http://www.layui.com/doc/modules/rate.html">
  370. <span>评分 </span>
  371. <span class="layui-font-12 layui-font-gray">rate</span>
  372. </a>
  373. </div>
  374. </li>
  375. <li class="">
  376. <div class="layui-menu-body-title">
  377. <a href="carousel.html" tppabs="http://www.layui.com/doc/modules/carousel.html">
  378. <span>轮播 </span>
  379. <span class="layui-font-12 layui-font-gray">carousel</span>
  380. </a>
  381. </div>
  382. </li>
  383. <li class="">
  384. <div class="layui-menu-body-title">
  385. <a href="layedit.html" tppabs="http://www.layui.com/doc/modules/layedit.html">
  386. <span>富文本编辑器 </span>
  387. <span class="layui-font-12 layui-font-gray">layedit</span>
  388. </a>
  389. </div>
  390. </li>
  391. <li class="">
  392. <div class="layui-menu-body-title">
  393. <a href="flow.html" tppabs="http://www.layui.com/doc/modules/flow.html">
  394. <span>流加载 </span>
  395. <span class="layui-font-12 layui-font-gray">flow</span>
  396. </a>
  397. </div>
  398. </li>
  399. <li class="">
  400. <div class="layui-menu-body-title">
  401. <a href="util.html" tppabs="http://www.layui.com/doc/modules/util.html">
  402. <span>工具组件 </span>
  403. <span class="layui-font-12 layui-font-gray">util</span>
  404. </a>
  405. </div>
  406. </li>
  407. <li class="">
  408. <div class="layui-menu-body-title">
  409. <a href="code.html" tppabs="http://www.layui.com/doc/modules/code.html">
  410. <span>代码高亮显示 </span>
  411. <span class="layui-font-12 layui-font-gray">code</span>
  412. </a>
  413. </div>
  414. </li>
  415. </ul>
  416. </li>
  417. </ul>
  418. </div>
  419. <div class="layui-hide-v"> - </div>
  420. </div>
  421. <div class="layui-col-md9 site-content">
  422. <h1 class="site-h1">下拉菜单组件文档 - layui.dropdown</h1>
  423. <blockquote class="layui-elem-quote layui-text">
  424. dropdown 是基于 layui「基础菜单」结构衍生的多功能通用下拉菜单组件,它将原本静态呈现的菜单,通过各种事件的形式触发,从而以独立面板的形式弹出。不仅可用作常见的「下拉菜单」,更可用于「右键菜单」来实现更多的交互可能。
  425. </blockquote>
  426. <blockquote class="layui-elem-quote layui-text">
  427. 模块加载名称:<em>dropdown</em>
  428. </blockquote>
  429. <fieldset class="layui-elem-field layui-field-title site-title">
  430. <legend><a name="use">快速使用</a></legend>
  431. </fieldset>
  432. <div class="site-text">
  433. <div class="layui-tab layui-tab-brief layui-code-demo">
  434. <ul class="layui-tab-title">
  435. <li class="layui-this">代码</li>
  436. <li>演示效果</li>
  437. </ul>
  438. <div class="layui-tab-content layui-border layui-bg-gray">
  439. <div class="layui-tab-item layui-show">
  440. <pre class="layui-code" id="docDemoCode1" lay-height="300px">
  441. &lt;button class=&quot;layui-btn&quot; id=&quot;demo1&quot;&gt;
  442. 下拉菜单
  443. &lt;i class=&quot;layui-icon layui-icon-down layui-font-12&quot;&gt;&lt;/i&gt;
  444. &lt;/button&gt;
  445. &lt;script&gt;
  446. layui.use('dropdown', function(){
  447. var dropdown = layui.dropdown
  448. dropdown.render({
  449. elem: '#demo1' //可绑定在任意元素中,此处以上述按钮为例
  450. ,data: [{
  451. title: 'menu item 1'
  452. ,id: 100
  453. ,href: '#'
  454. },{
  455. title: 'menu item 2'
  456. ,id: 101
  457. ,href: 'https://www.layui.com/' //开启超链接
  458. ,target: '_blank' //新窗口方式打开
  459. },{type: '-'},{
  460. title: 'menu item 3'
  461. ,id: 102
  462. ,type: 'group' //菜单类型,支持:normal/group/parent/-
  463. ,child: [{
  464. title: 'menu item 3-1'
  465. ,id: 103
  466. },{
  467. title: 'menu item 3-2'
  468. ,id: 104
  469. ,child: [{
  470. title: 'menu item 3-2-1'
  471. ,id: 105
  472. },{
  473. title: 'menu item 3-2-2'
  474. ,id: 106
  475. }]
  476. },{
  477. title: 'menu item 3-3'
  478. ,id: 107
  479. }]
  480. },{type: '-'},{
  481. title: 'menu item 4'
  482. ,id: 108
  483. },{
  484. title: 'menu item 5'
  485. ,id: 109
  486. ,child: [{
  487. title: 'menu item 5-1'
  488. ,id: 11111
  489. ,child: [{
  490. title: 'menu item 5-1-1'
  491. ,id: 2111
  492. },{
  493. title: 'menu item 5-1-2'
  494. ,id: 3111
  495. }]
  496. },{
  497. title: 'menu item 5-2'
  498. ,id: 52
  499. }]
  500. },{type:'-'},{
  501. title: 'menu item 6'
  502. ,id: 6
  503. ,type: 'group'
  504. ,isSpreadItem: false
  505. ,child: [{
  506. title: 'menu item 6-1'
  507. ,id: 61
  508. },{
  509. title: 'menu item 6-2'
  510. ,id: 62
  511. }]
  512. }]
  513. ,id: 'demo1'
  514. //菜单被点击的事件
  515. ,click: function(obj){
  516. console.log(obj);
  517. layer.msg('回调返回的参数已显示再控制台');
  518. }
  519. });
  520. });
  521. &lt;/script&gt;
  522. </pre>
  523. </div>
  524. <div class="layui-tab-item" id="docDemoView1" style="height:311px;"></div>
  525. </div>
  526. </div>
  527. <blockquote class="layui-elem-quote layui-text">菜单列表核心的数据来自于 data 参数,详细可参加右边目录「菜单列参数」</blockquote>
  528. </div>
  529. <fieldset class="layui-elem-field layui-field-title site-title">
  530. <legend><a name="options">基础参数</a></legend>
  531. </fieldset>
  532. <div class="site-text">
  533. <p>即核心方法 <code>dropdown.render(options)</code> 中的 options 对应的参数:</p>
  534. <table class="layui-table">
  535. <colgroup>
  536. <col width="100">
  537. <col>
  538. <col width="100">
  539. <col width="100">
  540. </colgroup>
  541. <thead>
  542. <tr>
  543. <th>参数</th>
  544. <th>说明</th>
  545. <th>类型</th>
  546. <th>默认值</th>
  547. </tr>
  548. </thead>
  549. <tbody>
  550. <tr>
  551. <td>elem</td>
  552. <td>绑定触发组件的元素。必填项</td>
  553. <td>String/DOM</td>
  554. <td>-</td>
  555. </tr>
  556. <tr>
  557. <td>data</td>
  558. <td>菜单列数据项,其参数详见下文。必填项</td>
  559. <td>Array</td>
  560. <td>[]</td>
  561. </tr>
  562. <tr>
  563. <td>trigger</td>
  564. <td>触发组件的事件类型。支持所有事件,如:click/hover/mousedown/contextmenu 等</td>
  565. <td>String</td>
  566. <td>click</td>
  567. </tr>
  568. <tr>
  569. <td>show</td>
  570. <td>是否初始即显示组件面板</td>
  571. <td>Boolean</td>
  572. <td>false</td>
  573. </tr>
  574. <tr>
  575. <td>align</td>
  576. <td>
  577. 下拉面板相对绑定元素的水平对齐方式(支持: left/center/right)
  578. <span class="layui-font-red">v2.6.8 新增</span>
  579. </td>
  580. <td>String</td>
  581. <td>left</td>
  582. </tr>
  583. <tr>
  584. <td>isAllowSpread</td>
  585. <td>是否允许菜单组展开收缩</td>
  586. <td>Boolean</td>
  587. <td>true</td>
  588. </tr>
  589. <tr>
  590. <td>isSpreadItem</td>
  591. <td>是否初始展开子菜单</td>
  592. <td>Boolean</td>
  593. <td>true</td>
  594. </tr>
  595. <tr>
  596. <td>delay</td>
  597. <td>延迟关闭的毫秒数。当 trigger 为 hover 时才生效</td>
  598. <td>Number</td>
  599. <td>300</td>
  600. </tr>
  601. <tr>
  602. <td>className</td>
  603. <td>自定义组件的样式类名</td>
  604. <td>String</td>
  605. <td>-</td>
  606. </tr>
  607. <tr>
  608. <td>style</td>
  609. <td>设置组件的 style 属性,从而定义新的样式</td>
  610. <td>String</td>
  611. <td>-</td>
  612. </tr>
  613. <tr>
  614. <td>templet</td>
  615. <td>全局定义菜单的列表模板,添加任意 html 字符,模版将被 laytpl 组件所转义,因此可通过 {{ d.title }} 的方式得到当前菜单配置的数据。<a href="#templet">#详见</a></td>
  616. <td>String</td>
  617. <td>-</td>
  618. </tr>
  619. <tr>
  620. <td>content</td>
  621. <td>自定义组件内容,从而替代默认的菜单结构</td>
  622. <td>String</td>
  623. <td>-</td>
  624. </tr>
  625. <tr>
  626. <td>ready</td>
  627. <td>
  628. 组件成功弹出后的回调,并返回两个参数,如:
  629. <pre class="layui-code" lay-lang="JS">
  630. ready: function(elemPanel, elem){
  631. console.log(elemPanel); 得到组件面板的 DOM 对象
  632. console.log(elem); 得到基础参数 elem 所绑定的元素 DOM 对象
  633. }
  634. </pre>
  635. </td>
  636. <td>Function</td>
  637. <td>-</td>
  638. </tr>
  639. <tr>
  640. <td>click</td>
  641. <td>
  642. 菜单项被点击时的回调,并返回两个参数,如:
  643. <pre class="layui-code" lay-lang="JS">
  644. click: function(data, othis){
  645. console.log(data); 得到当前所点击的菜单项对应的数据
  646. console.log(othis); 得到当前所点击的菜单项 DOM 对象
  647. console.log(this.elem); //得到当前组件绑定的原始 DOM 对象,批量绑定中常用。
  648. }
  649. </pre>
  650. <a href="#onclick">#详细使用参见下文</a>
  651. </td>
  652. <td>Function</td>
  653. <td>-</td>
  654. </tr>
  655. </tbody>
  656. </table>
  657. </div>
  658. <fieldset class="layui-elem-field layui-field-title site-title">
  659. <legend><a name="data">菜单项参数</a></legend>
  660. </fieldset>
  661. <div class="site-text">
  662. <p>即上述基础参数 <code>data</code> 对应的参数,格式为:<code>data: [{title: 'menu item 1', id: 1}, {}, {}]</code></p>
  663. <table class="layui-table">
  664. <colgroup>
  665. <col width="100">
  666. <col>
  667. <col width="100">
  668. <col width="200">
  669. </colgroup>
  670. <thead>
  671. <tr>
  672. <th>参数</th>
  673. <th>说明</th>
  674. <th>类型</th>
  675. <th>默认值</th>
  676. </tr>
  677. </thead>
  678. <tbody>
  679. <tr>
  680. <td>title</td>
  681. <td>菜单标题</td>
  682. <td>String</td>
  683. <td>-</td>
  684. </tr>
  685. <tr>
  686. <td>id</td>
  687. <td>菜单 ID。用户菜单项唯一索引</td>
  688. <td>Number/String</td>
  689. <td>-</td>
  690. </tr>
  691. <tr>
  692. <td>href</td>
  693. <td>菜单项的超链接地址。若填写,点击菜单将直接发生跳转。</td>
  694. <td>String</td>
  695. <td>false</td>
  696. </tr>
  697. <tr>
  698. <td>target</td>
  699. <td>
  700. 菜单项超链接的打开方式,需 href 填写才生效。
  701. <br>一般可设为 _blank 或 _self 等
  702. </td>
  703. <td>String</td>
  704. <td>_self</td>
  705. </tr>
  706. <tr>
  707. <td>type</td>
  708. <td>菜单项的类型,当前支持的值如下:
  709. <blockquote class="layui-elem-quote layui-text" style="margin-top: 10px;">
  710. <em>normal</em>(默认)
  711. <br><em>group</em>(垂直菜单组)
  712. <br><em>parent</em>(横向父子菜单)
  713. <br><em>-</em>(分割线)
  714. </blockquote>
  715. </td>
  716. <td>String</td>
  717. <td>normal 或 不填</td>
  718. </tr>
  719. <tr>
  720. <td>child</td>
  721. <td>子级菜单数据项。参数同父级,可无限嵌套。</td>
  722. <td>Array</td>
  723. <td>[]</td>
  724. </tr>
  725. <tr>
  726. <td>templet</td>
  727. <td>自定义当前菜单项模板,优先级高于全局设定的 templet。详见下文。</td>
  728. <td>String</td>
  729. <td>-</td>
  730. </tr>
  731. </tbody>
  732. </table>
  733. </div>
  734. <fieldset class="layui-elem-field layui-field-title site-title">
  735. <legend><a name="onclick">菜单项被点击的回调</a></legend>
  736. </fieldset>
  737. <div class="site-text">
  738. <div class="layui-tab layui-tab-brief layui-code-demo">
  739. <ul class="layui-tab-title">
  740. <li class="layui-this">代码</li>
  741. <li>演示效果</li>
  742. </ul>
  743. <div class="layui-tab-content layui-border layui-bg-gray">
  744. <div class="layui-tab-item layui-show">
  745. <pre class="layui-code" id="docDemoCode2" lay-height="300px" lay-encode="true">
  746. <table class="layui-table">
  747. <tbody>
  748. <tr>
  749. <td>列表 1</td>
  750. <td><button class="layui-btn layui-btn-sm demolist" data-id="111">更多操作</button></td>
  751. </tr>
  752. <tr>
  753. <td>列表 2</td>
  754. <td><button class="layui-btn layui-btn-sm demolist" data-id="222">更多操作</button></td>
  755. </tr>
  756. <tr>
  757. <td>列表 3</td>
  758. <td><button class="layui-btn layui-btn-sm demolist" data-id="333">更多操作</button></td>
  759. </tr>
  760. </tbody>
  761. </table>
  762. &lt;script&gt;
  763. layui.use('dropdown', function(){
  764. var dropdown = layui.dropdown
  765. ,$ = layui.jquery;
  766. dropdown.render({
  767. elem: '.demolist'
  768. ,data: [{
  769. title: 'item 1'
  770. ,id: 'aaa'
  771. }, {
  772. title: 'item 2'
  773. ,id: 'bbb'
  774. }]
  775. ,click: function(data, othis){
  776. var elem = $(this.elem)
  777. ,listId = elem.data('id'); //表格列表的预埋数据
  778. layer.msg('得到表格列表的 id:'+ listId +',下拉菜单 id:'+ data.id);
  779. }
  780. });
  781. });
  782. &lt;/script&gt;
  783. </pre>
  784. </div>
  785. <div class="layui-tab-item" id="docDemoView2"></div>
  786. </div>
  787. </div>
  788. </div>
  789. <fieldset class="layui-elem-field layui-field-title site-title">
  790. <legend><a name="templet">自定义菜单项模板</a></legend>
  791. </fieldset>
  792. <div class="site-text">
  793. <p>通过 templet 参数即可自定义菜单项模板,其字符将被 laytpl 组件所转义,因此可通过 undefined 的方式得到当前菜单配置的数据。</p>
  794. <pre class="layui-code" lay-lang="JS">
  795. var dropdown = layui.dropdown;
  796. //执行菜单
  797. dropdown.render({
  798. elem: '#id'
  799. ,data: [{
  800. title: '刷新'
  801. //当设定了模板时,菜单项将优先显示模板结构;否则将默认显示标题
  802. ,templet: '&lt;i class=&quot;layui-icon layui-icon-refresh&quot;&gt;&lt;/i&gt; {{d.title}}'
  803. ,id: 100
  804. },{
  805. title: 'menu item 2'
  806. //该模板由「图片+标题+徽章」组成
  807. ,templet: '&lt;img src=&quot;1.jpg&quot; style=&quot;width: 16px;&quot;&gt; {{d.title}} &lt;span class=&quot;layui-badge-dot&quot;&gt;&lt;/span&gt;'
  808. ,id: 101
  809. ,href: 'https://www.layui.com/'
  810. ,target: '_blank'
  811. },{
  812. title: 'menu item 3' //未开启模板时,默认直接显示标题
  813. ,id: 103
  814. }]
  815. })
  816. </pre>
  817. </div>
  818. <fieldset class="layui-elem-field layui-field-title site-title">
  819. <legend><a name="contextmenu">右键菜单</a></legend>
  820. </fieldset>
  821. <div class="site-text">
  822. <p>当参数设定为 <code>trigger: 'contextmenu'</code>时,即会在所绑定的元素中屏蔽默认的右键菜单,从而呈现 dropdown 组件配置的菜单。</p>
  823. <pre class="layui-code" lay-height="300px" lay-lang="JS">
  824. var dropdown = layui.dropdown;
  825. //执行菜单
  826. dropdown.render({
  827. elem: '#demo' //在 id="demo" 的元素中触发事件。也可以直接设置为 document,从而重置整个右键菜单
  828. ,trigger: 'contextmenu' //右键事件
  829. ,data: [{
  830. title: 'menu item 1'
  831. ,id: 1
  832. },{
  833. title: 'menu item 2'
  834. ,id: 'reload'
  835. },{type:'-'},{
  836. title: 'menu item 3'
  837. ,id: 3
  838. ,child: [{
  839. title: 'menu item 3-1'
  840. ,id: 31
  841. },{
  842. title: 'menu item 3-2'
  843. ,id: 32
  844. },{
  845. title: 'menu item 3-3'
  846. ,id: 33
  847. }]
  848. },{type:'-'},{
  849. title: 'menu item 4'
  850. ,id: 111
  851. },{
  852. title: 'menu item 5'
  853. ,id: 555
  854. },{
  855. title: 'menu item 6'
  856. ,id: 666
  857. }]
  858. });
  859. </pre>
  860. </div>
  861. <fieldset class="layui-elem-field layui-field-title site-title">
  862. <legend><a name="docend">结语</a></legend>
  863. </fieldset>
  864. <div class="site-text">
  865. <p>该组件使用非常灵活,且弹出的面板进行了坐标的科学判断(基于内部的 lay.js 模块),能始终吸附显示在最佳的位置。</p>
  866. </div>
  867. <div class="layui-elem-quote">
  868. <p>layui - 在每一个细节中,用心与你沟通</p>
  869. </div>
  870. </div>
  871. </div>
  872. <div class="layui-footer footer footer-doc">
  873. <p>
  874. Copyright &copy; 2021 <a href="../../index.html" tppabs="http://www.layui.com/">「本站仅为 layui 文档保留的镜像站点,与官方无关」</a> MIT Licensed</p>
  875. <p>
  876. <a href="../../about/disclaimer.html" tppabs="http://www.layui.com/about/disclaimer.html" target="_blank">免责声明</a>
  877. <a href="../../about/relatedlinks.html" tppabs="http://www.layui.com/about/relatedlinks.html" target="_blank">友链</a>
  878. <a href="javascript:;" site-event="weixinmp">公众号</a>
  879. </p>
  880. </div>
  881. <script>
  882. window.global = {
  883. pageType: 'doc'
  884. ,preview: function(){
  885. var preview = document.getElementById('LAY_preview');
  886. return preview ? preview.innerHTML : '';
  887. }()
  888. };
  889. </script>
  890. <div class="site-tree-mobile layui-hide">
  891. <i class="layui-icon layui-icon-spread-left"></i>
  892. </div>
  893. <div class="site-mobile-shade"></div>
  894. <script src="/public/layui/dist/layui.js" tppabs="http://res.layui.com/layui/dist/layui.js?t=1632428048355" charset="utf-8"></script>
  895. <script>
  896. layui.config({
  897. base: '/public/static/lay/modules/layui/'
  898. ,version: '1632428048355'
  899. }).use('global');
  900. </script>
  901. <script>
  902. global.docDemoCode1 = document.getElementById('docDemoCode1').innerHTML;
  903. global.docDemoCode2 = document.getElementById('docDemoCode2').innerHTML;
  904. layui.use(['dropdown', 'util', 'layer'], function(){
  905. var dropdown = layui.dropdown
  906. ,util = layui.util
  907. ,layer = layui.layer
  908. ,$ = layui.jquery;
  909. //临时写法
  910. $('#docDemoView1').html(util.unescape(global.docDemoCode1));
  911. $('#docDemoView2').html(util.unescape(global.docDemoCode2));
  912. });
  913. </script>
  914. </body>
  915. </html>