进阶9

2017-09-29  本文已影响0人  饥人谷_星璇

题目1: DOM0 事件和DOM2级在事件监听使用方式上有什么区别?

题目2: attachEvent与addEventListener的区别?

题目3: 解释IE事件冒泡和DOM2事件传播机制?

题目4:如何阻止事件冒泡? 如何阻止默认事件?

题目5:有如下代码,要求当点击每一个元素li时控制台展示该元素的文本内容。不考虑兼容

<ul class="ct">
    <li>这里是</li>
    <li>饥人谷</li>
    <li>前端6班</li>
</ul>
<script>
     var exhLi = document.querySelectorAll(".ct li")
     for(var i=0;i<exhLi.length;i++){
       exhLi[i].addEventListener('click',function(){
         console.log(this.innerText)
       })
     }
</script>

题目6: 补全代码,要求:

当点击按钮开头添加时在<li>这里是</li>元素前添加一个新元素,内容为用户输入的非空字符串;当点击结尾添加时在最后一个 li 元素后添加用户输入的非空字符串.
当点击每一个元素li时控制台展示该元素的文本内容。

<ul class="ct">
    <li>这里是</li>
    <li>饥人谷</li>
    <li>任务班</li>
</ul>
<input class="ipt-add-content" placeholder="添加内容"/>
<button id="btn-add-start">开头添加</button>
<button id="btn-add-end">结尾添加</button>
<script>
    var exhCt = document.querySelector(".ct"),
        addContent = document.querySelector(".ipt-add-content"),
        addStart = document.querySelector("#btn-add-start"),
        addEnd = document.querySelector("#btn-add-end");
        addStart.addEventListener("click",function(){
            if(addContent.value){
                var newli = document.createElement('LI'),
                    newliContent = document.createTextNode(addContent.value);
                newli.appendChild(newliContent)
                exhCt.insertBefore(newli,exhCt.firstChild)
            }else{
                alert("请输入内容")
            }
        })
        addEnd.addEventListener("click",function(){
            if(addContent.value){
                var newli = document.createElement('LI'),
                    newliContent = document.createTextNode(addContent.value);
                newli.appendChild(newliContent);
                exhCt.appendChild(newli);
            }else{
                alert("请输入内容")
            }
        })
</script>

题目7: 补全代码,要求:当鼠标放置在li元素上,会在img-preview里展示当前li元素的data-img对应的图片。

<ul class="ct">
    <li data-img="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1506634835121&di=d6a0527ecd212e54c65140a03b9c777b&imgtype=0&src=http%3A%2F%2Fwww.people.com.cn%2Fmediafile%2Fpic%2F20141114%2F68%2F13722014631559806976.jpg">鼠标放置查看图片1</li>
    <li data-img="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1506634857398&di=821a399d8511b9a8fcac839372e5b999&imgtype=0&src=http%3A%2F%2Fpic2.duowan.com%2Fwow%2F1001%2F128450260452%2F128453038627.jpg">鼠标放置查看图片2</li>
    <li data-img="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1506634891147&di=60c0c74029d33815f6fc5f31f6e49cdf&imgtype=0&src=http%3A%2F%2Fatt.bbs.duowan.com%2Fforum%2F201204%2F24%2F224551ggtclcphxt2g2slk.jpg">鼠标放置查看图片3</li>
</ul>
<div class="img-preview"></div>
<script>
    var ct = document.querySelector(".ct"),
        ctimg = document.querySelectorAll(".ct li"),
        imgPre = document.querySelector(".img-preview");
        for(i=0;i<ctimg.length;i++){
            ctimg[i].addEventListener("mouseenter",function(){
                newimg = document.createElement("img");
                dataimg = this.getAttribute('data-img');
                newimg.setAttribute('src',dataimg);
                imgPre.appendChild(newimg);
            })
            ctimg[i].addEventListener("mouseleave",function(){
                imgPre.removeChild(imgPre.firstChild);
            })
        }
</script>
上一篇下一篇

猜你喜欢

热点阅读