为什么点击按钮后无法显示?

为什么点击按钮后无法显示?

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>下拉菜单组件</title>
    <link rel="stylesheet" href="css/base.css" />
    <style type="text/css">
    body {
        background-color: gray;
    }

    .dropdown {
        position: relative;
    }

    .dropdown-toggle {
        position: relative;
        z-index: 2;
    }

    .dropdown-arrow {
        display: inline-block;
        /*background-repeat: no-repeat;*/
        vertical-align: middle;
    }

    .dropdown-layer {
        display: none;
        position: absolute;
        z-index: 1;
        overflow: hidden;
    }

    .dropdown-left {
        left: 0;
        right: auto;
    }

    .dropdown-right {
        right: 0;
        left: auto;
    }
    /*.menu .dropdown*/

    .menu .dropdown-toggle {
        display: block;
        height: 100%;
        padding: 0 16px 0 12px;
        border-left: 1px solid #f3f5f7;
        border-right: 1px solid #f3f5f7;
    }

    .menu .dropdown-arrow {
        /*width: 8px;
        height: 6px;
        background-image: url(../img/dropdown-arrow.png);*/
        margin-left: 8px;
    }

    .menu .dropdown-layer {
        top: 100%;
        background-color: #fff;
        border: 1px solid #cdd0d4;
    }

    .menu-item {
        display: block;
        height: 30px;
        line-height: 30px;
        padding: 0 20px;
        color: #4d555d;
        white-space: nowrap;
    }

    .menu-item:hover {
        background-color: #f3f5f7;
    }

    .menu-active .dropdown-toggle {
        background-color: #fff;
        border-color: #cdd0d4;
    }

    .menu-active .dropdown-arrow {
        /*background-image: url(../img/dropdown-arrow-active.png);*/
    }
    /*.menu-active .dropdown-layer {
        display: block;
    }*/
    /* css 绘制箭头
        .icon-triangle-down{
        width:0px;
        height:0px;
        border:4px solid #535b62;
        border-right-color:transparent;
        _border-right-color:yellow;
        border-left-color: transparent;
        _border-left-color:yellow;
        border-bottom: none;
    }  



    .menu-active .icon-triangle-down{
        border-top: none;
        border-bottom:4px solid #f11c1c;
    }*/

    @font-face {
        font-family: "iconfont";
        src: url('font/iconfont.eot?t=1477124206');
        /* IE9*/
        src: url('font/iconfont.eot?t=1477124206#iefix') format('embedded-opentype'), /* IE6-IE8 */
        url('font/iconfont.woff?t=1477124206') format('woff'), /* chrome, firefox */
        url('font/iconfont.ttf?t=1477124206') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
        url('font/iconfont.svg?t=1477124206#iconfont') format('svg');
        /* iOS 4.1- */
    }

    .icon {
        font-family: "iconfont" !important;
        font-size: 14px;
        font-style: normal;
        -webkit-font-smoothing: antialiased;
        -webkit-text-stroke-width: 0.2px;
        -moz-osx-font-smoothing: grayscale;
    }
    /*单独菜单旋转*/
    /*  .menu-active .dropdown-arrow {  
            -o-transform: rotate(180deg);
            -ms-transform: rotate(180deg);
            -moz-transform: rotate(180deg);
            -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
        }*/
    /*多菜单旋转*/

    [class*="-active"] .dropdown-arrow {
        -o-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
        -moz-transform: rotate(180deg);
        -webkit-transform: rotate(180deg);
        transform: rotate(180deg);
    }

    .transition {
        -o-transition: all 0.5s;
        -ms-transition: all 0.5s;
        -moz-transition: all 0.5s;
        -webkit-transition: all 0.5s;
        transition: all 0.5s;
    }

    .fadeOut {
        visibility: hidden !important;
        opacity: 0 !important;
    }

    .slideUpDownCollapse {
        height: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    .slideLeftRightCollapse {
        width: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .dropdown-loading{
        width:32px;
        height: 32px;
        background: url(../img/loading.gif) no-repeat;
        margin: 20px;
    }
    </style>
</head>

<body>
    <!--   通用html代码
    <div class="menu dropdown">
        <div class="dropdown-toggle">我的慕淘<i class="dropdown-arrow"></i></a>
        <div class="dropdown-layer dropdown-left">
            
        </div>
    </div> -->
    <!-- <div class="menu dropdown fl" data-active="menu">
        <a class="dropdown-toggle">我的慕淘<i class="dropdown-arrow"></i></a>
        <ul class="dropdown-layer dropdown-left">
            <li><a href="###" target="_blank" class="menu-item">已买到的宝贝</a></li>
            <li><a href="###" target="_blank" class="menu-item">我的足迹</a></li>
        </ul>
    </div> -->
    <div class="menu dropdown fl" data-active="menu" data-load="dropdown.json">
        <a href="javascript:;" class="dropdown-toggle">我的慕淘<i class="dropdown-arrow icon transition">&#xe609;</i></a>
        <ul class="dropdown-layer dropdown-left">
            <li class="dropdown-loading"></li>
            <!--  解决按需加载。使用json文件-->
            <!-- <li><a href="###" target="_blank" class="menu-item">已买到的宝贝</a></li>
            <li><a href="###" target="_blank" class="menu-item">我的足迹</a></li> -->
        </ul>
    </div>


     <!-- <div class="menu dropdown fl" data-active="menu"> -->
        <!-- <a href="javascript:;" class="dropdown-toggle">我的慕淘2<i class="dropdown-arrow icon transition">&#xe609;</i></a> -->
        <!-- <ul class="dropdown-layer dropdown-left"> -->
            
        <!--     <li><a href="###" target="_blank" class="menu-item">已买到的宝贝</a></li>
            <li><a href="###" target="_blank" class="menu-item">我的足迹</a></li> -->
        <!-- </ul> -->
    <!-- </div> -->
    <!--  <div class="menu dropdown fl" data-active="menu">
        <a href="javascript:;" class="dropdown-toggle">我的慕淘2<i class="dropdown-arrow icon transition">&#xe609;</i></a>
        <ul class="dropdown-layer dropdown-left">
            <li><a href="###" target="_blank" class="menu-item">已买到的宝贝2</a></li>
            <li><a href="###" target="_blank" class="menu-item">我的足迹2</a></li>
        </ul>
    </div>


     <div class="menu dropdown fl" data-active="menu">
        <a href="javascript:;" class="dropdown-toggle">我的慕淘3<i class="dropdown-arrow icon transition">&#xe609;</i></a>
        <ul class="dropdown-layer dropdown-left">
            <li><a href="###" target="_blank" class="menu-item">已买到的宝贝3</a></li>
            <li><a href="###" target="_blank" class="menu-item">我的足迹3</a></li>
        </ul>
    </div> -->
    <button id='btn-show'>点我显示</button>
    <button id='btn-hide'>点我隐藏</button>
    <script src="js/jquery.js"></script>
    <script src="js/transition.js"></script>
    <script src="js/showHide.js"></script>
    <script src="js/dropdown.js"></script>
    <script type="text/javascript">
    // -----简单写法-----
    // $('.dropdown').hover(function() {
    //  var $this=$(this); // 缓存this,以避免重复加载
    //     $this.addClass($this.data('active')+'-active');
    // }, function() {
    //  var $this=$(this);
    //     $this.removeClass($this.data('active')+'-active');
    // });



    //------封装代码方式--------
    //   function dropdown(elem) {
    //    var $elem = $(elem),
    //        activeClass = $elem.data('active') + '-active';
    //    $elem.hover(function() {
    //        $elem.addClass(activeClass);
    //    }, function() {
    //        $elem.removeClass(activeClass);
    //    });

    // }
    //单个下拉菜单 dropdown($('.dropdown')[0])

    //多个下拉菜单 

    // $('.dropdown').each(function(){
    //  dropdown($(this));
    // });



    // ------插件方式-------

    // function dropdown(elem) {
    //     var $elem = $(elem),
    //         activeClass = $elem.data('active') + '-active';
    //     $elem.hover(function() {
    //         $elem.addClass(activeClass);
    //     }, function() {
    //         $elem.removeClass(activeClass);
    //     });

    //  }

    // $.fn.extend({
    //  dropdown:function(){
    //      return this.each(function(){
    //          dropdown(this);

    //      });

    //  }
    // });

    // $('.dropdown').dropdown(); // 插件为了更好的调用
    // $('.dropdown').on('dropdown-show dropdown-shown dropdown-hide dropdown-hidden',function (e) {
    //     console.log(e.type);

    // })

   
    // $('.dropdown').on('dropdown-show', function(e) {
    //     var $this=$(this),
    //          dataLoad=$(this).data('load');
    //          if(!dataLoad) return;

    //         // $layer.html('<li class="dropdown-loading"></li>');
    //    if(!$this.data('loaded')){

    //     var $layer = $(this).find('.dropdown-layer'),
    //         html = '';
    //      $.getJSON(dataLoad, function(data) {
    //         console.log(1);
    //         setTimeout(function() {
    //             for (var i = 0; i < data.length; i++) {
    //                 html += '<li><a href="' + data[i].url + '"  target="_blank" class="menu-item">' + data[i].name + '</a></li>'
    //             }
    //             $layer.html(html);
    //             $this.data('loaded',true);

    //         }, 1000);
    //     });
    //    }

    // });


    $('.dropdown').on('dropdown-show', function (e) {
            var $layer=$(this).find('.dropdown-layer'),
            html='';
          $.getJSON('dropdown.json',function(data){
            // console.log(data);
            for(var i=0;i<data.length;i++){
                html+='<li><a href="'+data[i].url+'" target="_blank" class="menu-item">'+data[i].name+'</a></li>'
            }
            $layer.html(html);
          });
        });

    $('.dropdown').dropdown({
        event: 'hover',
        delay: 1000,
        css3: true,
        js: true,
        animation: 'fade'
        // active:'menu'

    });

    $('#btn-show').on('click', function() {
        $('.dropdown').dropdown('show');

    });

    $('#btn-hide').on('click', function() {
        $('.dropdown').dropdown('hide');

    });
    </script>
</body>

</html>


[
	{
		"url":"###",
		"name":"已买到的宝贝"
	},
	{
		"url":"###",
		"name":"我的足迹"
	},
	{
		"url":"###",
		"name":"我的优惠券"
	}
]


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好, 老师在源码中将你的这部分代码粘贴过去, 测试你这段代码, 是可以正常显示的内容的哦,示例:

http://img1.sycdn.imooc.com//climg/5d085e720001687103580182.jpg

同学说的不能显示具体是指什么不能显示呢, 可以详细的描述一下做了什么操作哦,或者打开控制台查看是否有报错信息, 如果有问题, 可以截图过来, 再次提问, 我们会继续为你解答的

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~~


提问者 qq_鸭绿桥第一帅哥_0 2019-06-18 13:14:39

  感谢老师,目前已经可以正常显示了。但是控制台为什么会报错呢?

http://img1.sycdn.imooc.com//climg/5d0873260001677f19200180.jpg

  • 同学你好, 因为直接从本地加载json文件, 浏览器解析的原因导致的, 目前阶段, 浏览器的这个提示不影响我们项目的运行,同学可以不用理会哦。祝学习愉快~~~
    2019-06-18 13:48:13
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师