这样可以吗?第3小点要求没看明白,是需要设置为点击close,然后模拟btn触发了一次吗?

这样可以吗?第3小点要求没看明白,是需要设置为点击close,然后模拟btn触发了一次吗?

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8" />

<title>方法的调用</title>

<style type="text/css">

    #box{position: relative; width: 100px; height: 100px; 

         background-color: red; margin: 10px auto;}

    #close{position: absolute; right: 0px; top: -4px; color: yellow;}

    #btn{display: block; width: 100px; margin: 0 auto;}

    #btn_open{display: none; width: 100px; margin: 0 auto;}

</style>

</head>

<body>

    <div id="box">

        <span id="close">X</span>

    </div>

    <button id="btn">关闭</button>

    <button id="btn_open">打开</button>

<script type="text/javascript">

    // 在此处补充代码 

    var elment={

        box:document.getElementById("box"),

        close:document.getElementById("close"),

        btn:document.getElementById("btn"),

        btn_open:document.getElementById("btn_open")

    }

    //封装关闭box

    function Close(){

        elment.box.style.display="none";

        elment.btn.style.display="none";

        elment.btn_open.style.display="block";

    }

    //封装打开box

    function Open(){

        elment.box.style.display="block";

        elment.btn.style.display="block";

        elment.btn_open.style.display="none";

    }

    elment.close.addEventListener("click",Close);

    elment.btn.addEventListener("click",Close);

    elment.btn_open.addEventListener("click",Open);

</script>

</body>

</html>

   


也就是说需要设置成close.onclick= elment.btn.onclick( )吗?

正在回答

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

3回答

同学你好!

同学写的就是jsDom2级绑定事件

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

html事件是没有2级的。可以看下html事件和jsDom事件

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

再看下JS中dom0级事件dom0级和dom2级的区别事件

这是dom0级:document.getElementById("btn").onclick = function(){};

这是dom2级:document.getElementById("btn").addEventListener("click", function(){}, false);

dom0级后面绑定的事件会覆盖前面绑定的事件,点击的时候会执行新绑定的

dom2级不会覆盖前面绑定的事件,点击的时候所有绑定的事件会依次执行一遍

同学是不是混淆了,可以看着理解一下

如果帮助到了你 欢迎采纳 祝学习愉快~

好帮手慕码 2019-06-27 09:51:55

同学你好!

代码效果实现了,两种方式都是可以的

第3点可以简单点实现就如下图:

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

jsDom2级事件绑定可以使用addEventListener。比如说:

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

其实代码写法有很多,选择自己觉得最简单的就可以了~

如果帮助到了你 欢迎采纳 祝学习愉快~

  • 提问者 为你浅笑 #1
    html2级事件怎么去模拟例子中的点击一次btn呢?
    2019-06-27 10:40:15
  • 提问者 为你浅笑 #2
    html2级事件怎么去模拟例子中的点击一次btn呢?
    2019-06-27 10:40:16
提问者 为你浅笑 2019-06-26 23:17:02

也就是我只能用html0级事件去绑定然后在实行模拟事件发生吗?

改成这样?

elment.btn.onclick=Close;

elment.btn_open.onclick=Open;

elment.close.onclick=function(){

elment.btn.onclick();

}

如果用html2级事件绑定该如何实行模拟事件呢?



问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

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

在线咨询

领取优惠

免费试听

领取大纲

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