• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
LilyLiya
博客园    首页    新随笔    联系   管理    订阅  订阅
DOM_events_addEventListener
DOM event,onclick= / .onclick / .addEventListener

DOM点击事件, 首先使用document.querySelector()选中元素,然后对这个元素进行点击事件的调用。

方法一:(inline events)直接在html文件里面写,缺点:让html文件显得冗余,而且如果有多个点击事件应用于同一类的元素的话,代码重复率很高

<body>
    <h1>Events</h1>
    <button onclick="alert('you clicked me!'); alert('stop clicking')">Click Me!</button>
</body>

方法二: .onclick,选中某个元素.  xx.onclick = 某个function

缺点,连续调用两次.onclick的话,第一次调用的事件不会发生,只会被第二次覆盖。

const btn = document.querySelector('#v2');

btn.onclick = function () {
    console.log("YOU CLICKED ME!")
    console.log("I HOPE IT WORKED!!")
}

function scream() {
    console.log("AAAAAHHHHH");
    console.log("STOP TOUCHING ME!")
}

btn.onmouseenter = scream;


document.querySelector('h1').onclick = () => {
    alert('you clicked the h1!')
}
function twist() {
    console.log("TWIST!")
}
function shout() {
    console.log("SHOUT!")
}

const tasButton = document.querySelector('#tas');

tasButton.onclick = twist;
tasButton.onclick = shout;
//overwrite, twist 这个事件不会发生

方法三: .addEventListener最常用,解决了方法一和方法二存在的问题

onst btn3 = document.querySelector('#v3');
btn3.addEventListener('click', function () {
    alert("CLICKED!");
})

function twist() {
    console.log("TWIST!")
}
function shout() {
    console.log("SHOUT!")
}

const tasButton = document.querySelector('#tas');

tasButton.addEventListener('click', twist)
tasButton.addEventListener('click', shout)

 

posted on 2021-01-21 01:12  LilyLiya  阅读(69)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3