1. 实例演示你对事件代理机制的理解?
答:我对事件代理机制的理解是,子元素将要发生的事件由父元素代为管理并执行操作。
具体代码如下:
实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>事件代理</title> </head> <body> <label for="comment">请留言:</label> <input type="text" id="comment" autofocus> <ul id="list"></ul> <script> var comment = document.getElementById('comment'); var list = document.getElementById('list'); comment.addEventListener('keypress', addComment, false); function addComment(event) { if (event.key === 'Enter') { var item = document.createElement('li'); item.innerHTML = comment.value; if (list.childElementCount === 0) { list.appendChild(item); } else { list.prepend(item,list.firstElementChild); } comment.value = null; } } </script> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
这里直接借用了老师的代码,但我是用心去揣摩每句代码的意思的,代码用了父级的元素,即标签<ul>去创建新的<li>,当存在旧留言时,代码的父元素又把新留言<li>插入到旧<li>之前。
2. 模仿留言板案例, 利用学过的CSS知识, 写一个美观的留言板页面, 并使用JavaScript完成基本的留言添加与删除功能...
发挥你的想象力, 做一个看上去较为专业的界面....
答:经过复习消化老师的代码,因为知识储备不多,写了一个很简单的留言板,代码如下:
实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>0711homework</title> <style> #welcome{ color: red; font-size: 30px; text-align: center; line-height: 80px; } .header{ min-height: 80px; background-color: aliceblue; } .memohead{ width: 800px; height: 80px; margin: 0 auto; } .content{ width:800px; min-height: 500px; background-color: bisque; margin: 10px auto; } .ulzone{ width: 800px; min-height: 800px; margin:10px auto; background-color: aqua; } </style> </head> <body> <div class="header"> <div class="memohead"> <p id="welcome">留 言 板</p> </div> </div> <div class="content"> <label for="comment"></label> <input type="text" id="comment" onkeypress="said(this)" style="width: 800px;height:500px" autofocus> </div> <div class="ulzone"> <ul id="list"> </ul> </div> <script> function said(words) { // console.log(event); if (event.keyCode === 13) { var item=document.createElement("li"); item.innerHTML=words.value; item.innerHTML += ' <button onclick="del(this)">删除</button>'; // 以下用于检查留言是否是第一条,如果是,就直接记录,否则把新留言置顶 var thisul = document.querySelector('#list'); if (thisul.childElementCount===0){ thisul.append(item); } else{ var first = thisul.firstElementChild; thisul.prepend(item,first); } words.value=null; } // words.value=null; } function del(xxx) { if (confirm('您确定删除吗?')) { var star= xxx.parentElement; star.remove(); } } </script> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
运行效果图如下:
总结:真的好难,想哭!!但上课必须坚持,复习也是必须的,希望有一天能自己写个论坛。