事件

2017-06-09  本文已影响0人  jamesXiao_

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

attachEvent与addEventListener的区别?

解释IE事件冒泡和DOM2事件传播机制?

如何阻止事件冒泡? 如何阻止默认事件?

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

<ul class="ct">
<li>这里是</li>
<li>饥人谷</li>
<li>前端6班</li>
</ul>
<script>
var ct = document.querySelectorAll('.ct li');
ct.forEach(function (node) {
node.addEventListener('click', function () {
console.log(this.innerText);
});
})
</script>

<ul class="ct">
<li>这里是</li>
<li>饥人谷</li>
<li>前端6班</li>
</ul>
<script>
var ct = document.querySelector('.ct');
ct.addEventListener('click', function (e) {
var target = e.target;
if (target.nodeName.toLowerCase() != 'li') return false;
console.log(target.innerText);
});
</script>


#补全代码,要求:

当点击按钮开头添加时在<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 list = document.querySelectorAll('.ct li');
var ct = document.querySelector('.ct');
var ipt = document.querySelector('.ipt-add-content');
var start = document.querySelector('#btn-add-start');
var end = document.querySelector('#btn-add-end');
ct.addEventListener('click', function (e) {
var target = e.target;
if (target.nodeName.toLowerCase() != 'li') return false;
console.log(target.innerText);
});

start.addEventListener('click', function () {
var str = ipt.value;
if (str.length == 0) return false;
addLi(str, ct, 'start', list);
});

end.addEventListener('click', function () {
var str = ipt.value;
if (str.length == 0) return false;
addLi(str, ct, 'end');
});

function addLi(str, element, position, list) {
var el = document.createElement('li');
el.innerText = str;
if (position == 'start') {
element.insertBefore(el, list[0]);
} else if (position == 'end') {
element.appendChild(el);
}
}
</script>


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

>```
<ul class="ct">
    <li data-img="http://cdn.jirengu.com/book.jirengu.com/img/11.jpg">鼠标放置查看图片1</li>
    <li data-img="http://cdn.jirengu.com/book.jirengu.com/img/13.jpg">鼠标放置查看图片2</li>
    <li data-img="http://cdn.jirengu.com/book.jirengu.com/img/14.jpg">鼠标放置查看图片3</li>
<div class="img-preview"></div>
<script>
  var ct = document.querySelector('.ct');
  var preview = document.querySelector('.img-preview');
      ct.addEventListener('click', function (e) {
        var target = e.target;
        if (target.nodeName.toLowerCase() != 'li') return false;
        var src = target.getAttribute('data-img');
        preview.innerHTML = '![](' + src + ')';
      });
</script>
上一篇 下一篇

猜你喜欢

热点阅读