Layui 自动生成DOM

在结合layui 使用时,遇到了一个很神奇的问题,暂时没弄清楚问题出在什么地方,先记下
直接使用没有问题,但是放在layui 内就不行

<!--侧边导航栏,产生事件-->
<div class="layui-side layui-bg-black">
  <ul class="layui-nav layui-nav-tree layui-inline" lay-filter="menu" style="margin-right: 10px;">           
    <li class="layui-nav-item">
      <a href="javascript:;">str1</a>
    </li>
  </ul>
</div>

<!--最终DOM 元素被创建到这里-->
<div class="layui-body layui-tab-brief" style="padding: 20px; background-color: #F2F2F2;">
  <div id="imgLoading" style="text-align: center; display: none">
    <img style="margin: auto" src="/src/layui/images/face/30.gif" alt="加载中"/><br/>loading...
  </div>
  <div id="mainContainer">
  </div>
</div>


<script>
// use layui.element
layui.use('element',
  () => {
    var element = layui.element;
    // 事件监听
    element.on('nav(nav)',
      (elem) => {
        console.log(elem.text());
        // layer.msg(elem.text());
        switch (elem.text()) {  // 事件来源,这里写的不漂亮,以后还得再调整下
          case 'str1':
            loadDuty(); 
            break;
          default:
            break;
        }
      });
});

// 加载器
var loadElement = (callback) => {
  $('#imgLoading').show();
  console.log('加载开始');
  var runAsyn = () => {
    var defer = $.Deferred();
    // var p = new Promise();
    callback(defer);
    return defer;
  }
  runAsyn(callback).then(() => {
    $('#imgLoading').hide();
    console.log('隐藏加载框');
  });
}

// 加载模块Duty
var loadDuty = () => {
  loadElement((defer) => {
    setTimeout(function() {
      $('#mainContainer').empty();
      $('#mainContainer').append('<div>123</div>');
        defer.resolve();
      },
    2000);
  });
}
</script>

千万不要忘记:<a href='javascript:;'></a> 标签可以阻止页面刷新,也能阻止事件冒泡

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 有关jQuery 事件模块结构部分的分析可以参考这篇文章,作者分析的很不错,赞一个。 进题之前,有几个名词 Eve...
    江枫阅读 5,302评论 1 13
  • 1.背景介绍 事件冒泡: 在一个对象上触发某类事件(比如点击事件),如果此对象定义了此事件的处理程序,那么此事件就...
    zxcdino阅读 5,062评论 1 0
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 8,897评论 1 11
  • js之事件机制 1、事件初探 1.1 js事件的概述 JavaScript事件:JavaScript是基于事件驱动...
    道无虚阅读 7,270评论 0 2
  • 三尺宝地任风刮,满腔爱心给大家。东西南北美如画,建设祖国力奋发。
    太阳哥月亮妹阅读 1,297评论 0 1

友情链接更多精彩内容