js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍

JS鼠标点击事件在各个浏览器中的写法及Event对象属性介绍

鼠标点击事件是Web开发中使用最频繁的交互功能之一,其中又以JavaScript作为事件的绑定和处理工具最为常见。本文将介绍js鼠标点击事件在各个浏览器中的写法以及Event对象属性介绍。

鼠标点击事件写法介绍

基础事件绑定及处理函数

  • 首先,我们需要了解在各个浏览器中的鼠标点击事件绑定函数,其中addEventListener是标准事件绑定函数,不同的浏览器可能有不同的函数。
// 添加鼠标点击事件监听,绑定函数为clickEvent
if(document.addEventListener) {
    document.addEventListener('click', clickEvent);
} else if(document.attachEvent) {
    document.attachEvent('onclick', clickEvent);
}
  • 鼠标点击事件处理函数

事件处理函数是在相应事件发生时执行的函数。在鼠标点击事件中,事件处理函数会包含一个事件对象event,我们可以通过该对象获取鼠标点击位置、按键等信息。

function clickEvent(event) {
    // 取消事件默认行为
    event.preventDefault();
    // 获取点击位置
    var x = event.pageX;
    var y = event.pageY;
    // 获取按键状态
    var leftClicked = event.button === 0;
    var rightClicked = event.button === 2;
}

事件委托及冒泡

  • 事件委托

事件委托是一种事件处理的优化技术,它可以将多个子元素的相同事件委托给它们的父元素处理,以减少事件处理函数的数量,并提高性能和维护性。

// 点击元素添加一个子元素,并触发点击事件
var parent = document.getElementById('parent');
parent.addEventListener('click', function(event) {
    // 防止事件冒泡
    event.stopPropagation();
    if(event.target.className === 'btn-add') {
        var child = document.createElement('div');
        child.className = 'child';
        parent.appendChild(child);
        // 触发子元素的点击事件
        child.click();
    }
});

// 每个子元素绑定的点击事件
document.addEventListener('click', function(event) {
    if(event.target.className === 'child') {
        console.log('click on child');
    }
});
  • 事件冒泡

事件冒泡是指事件在触发元素后,会一层层向外冒泡传递到它的父元素,直至document对象为止。我们可以利用这一机制来进行事件委托。

// 添加多个元素并绑定点击事件
var elements = document.getElementsByTagName('div');
for(var i=0; i<elements.length; i++) {
    elements[i].addEventListener('click', function(event) {
        console.log('click on ' + this.id);
    });
}

Event对象属性介绍

  • button

button属性可以获取鼠标按键的状态,返回值为0、1或2,分别表示左键、中键和右键。

if(event.button === 0) {
    console.log('left button clicked');
} else if(event.button === 1) {
    console.log('middle button clicked');
} else if(event.button === 2) {
    console.log('right button clicked');
}
  • pageX, pageY

pageX和pageY属性可以获取鼠标点击位置的坐标,相对于文档的左上角。

var x = event.pageX;
var y = event.pageY;
  • target

target属性可以获取事件的触发元素。

var targetElement = event.target;
  • stopPropagation()

stopPropagation()方法可以取消事件的进一步传递,防止事件冒泡。

event.stopPropagation();

示例说明

下面是两个鼠标点击事件的实例:

实例1

在这个案例中,我们创建了一个按钮,当用户点击按钮时,文本会在网站的顶部添加一行显示该动作的内容。

<!DOCTYPE html>
<html>
<head>
    <title>JS鼠标点击事件绑定实例</title>
    <script>
        function handleClick(event) {
            var newLine = document.createElement('p');
            newLine.innerHTML = 'Button is clicked.';
            document.body.insertBefore(newLine, document.body.firstChild);
        }

        function init() {
            var btn = document.getElementById('myButton');
            btn.addEventListener('click', handleClick);
        }

        window.addEventListener('load', init);
    </script>
</head>
<body>
    <button id="myButton">点击我</button>
</body>
</html>

实例2

在这个案例中,我们将创建一个元素,其名为container,我们将在内部放置几个嵌套的元素,然后监听来自于用户的每一次点击事件。所有点击事件都会被处理返回,也就是我们会在控制台上看到点击的信息。

<!DOCTYPE html>
<html>
<head>
    <title>JS鼠标点击事件委托实例</title>
    <script>
        function handleClick(event) {
            var elem = event.target;
            console.log(elem.tagName + ' was clicked!');
        }

        function init() {
            var container = document.getElementById('container');
            container.addEventListener('click', handleClick);
        }

        window.addEventListener('load', init);
    </script>
</head>
<body>
    <div id="container">
        <div>
            <button>点击</button>
        </div>
        <div>
            <a href="#">链接</a>
        </div>
    </div>
</body>
</html>

总结

本文介绍了js鼠标点击事件在各个浏览器中的写法以及Event对象属性介绍。如果您掌握了这些知识并且在实践中熟练应用,将会大大提高您的网站开发效率并且改善用户的交互效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 如何快速高效创建JavaScript 一维数组方法详解

    当我们需要存储一组相关数据时,数组是JavaScript中最常用的数据类型之一。创建JavaScript一维数组非常简单,我们只需要将不同的数值或字符串用逗号隔开即可。但是,当数组中数据很多时,我们需要更高效,更便利地来创建数组。 下面是创建JavaScript一维数组的一些方法详解。 1. 直接赋值法 这是最基本的方法,我们可以直接在代码中定义值为数组类型…

    JavaScript 2023年5月27日
    00
  • 微信小程序开发animation心跳动画效果

    下面是关于微信小程序开发animation心跳动画效果的完整攻略: 一、准备工作 在微信开发者工具中创建一个新的小程序项目。 在项目根目录下创建一个 animation 文件夹,用于存放心跳动画所需的图片资源。 二、设计心跳动画 在 animation 文件夹中准备两张心形图片,大小可以根据自己的需求而定。 在小程序页面的 wxml 文件中将两张图片插入。 …

    JavaScript 2023年6月11日
    00
  • javascript下高性能字符串连接StringBuffer类

    当需要进行大量的字符串拼接操作时,JavaScript中的字符串连接会非常消耗性能,影响代码性能。为了提高字符串拼接的性能,我们可以使用 String Buffer 类。下面是使用StringBuffer拼接大量字符串的步骤: 1.引入StringBuffer类 在JavaScript中没有内置的StringBuffer类,我们需要自己实现或者引入第三方库。…

    JavaScript 2023年5月28日
    00
  • JavaScript中用getDate()方法返回指定日期的教程

    标题:JavaScript中用getDate()方法返回指定日期的教程 介绍 JavaScript中的Date对象为我们提供了多种方法来操作日期和时间。其中,getDate()方法用于返回Date对象中存储的日期的月份中的某一天。 语法 getDate()方法的语法如下: dateObject.getDate() 其中,dateObject为必填项,表示要获…

    JavaScript 2023年5月27日
    00
  • 原生js实现倒计时–2018

    原生js实现倒计时–2018 本文将介绍如何使用原生js实现一个倒计时效果来迎接2018年的到来。 前置知识 在学习本文之前,请确保您已经具备以下基本的前端知识:- HTML标记语言- CSS基础样式及布局- JavaScript基础知识- DOM操作基础 HTML代码 首先我们需要在页面上添加一个用于显示倒计时的容器,其结构如下所示: <div i…

    JavaScript 2023年5月27日
    00
  • JavaScript中的事件循环方式

    JavaScript中的事件循环方式是Web开发中非常重要的一个概念。它决定了JavaScript的执行顺序,是理解异步编程和Promise的重要起点。在本文中,我将逐步介绍JavaScript的事件循环机制。 什么是事件循环 事件循环指的是JavaScript引擎在空闲时,从消息队列中取出一条消息进行处理的过程。在JavaScript中,事件可以是异步操作…

    JavaScript 2023年5月28日
    00
  • js实现删除json中指定的元素

    下面是如何实现删除JSON中指定元素的攻略: 1. 找到要删除的元素 在删除JSON中指定元素时,首先要找到要删除的元素。我们可以使用JavaScript的filter()或splice()方法来操作JSON对象。 利用filter()方法: let data = [ {id: 1, name: ‘Alice’}, {id: 2, name: ‘Bob’},…

    JavaScript 2023年5月27日
    00
  • JS 加入收藏夹的代码(主流浏览器通用)

    这里提到的“JS 加入收藏夹的代码(主流浏览器通用)”是指使用JavaScript代码实现将当前网页添加到收藏夹中的功能,下面是详细讲解完整攻略: 步骤一:创建添加收藏夹的代码段 我们可以使用Javascript创建一个函数,将当前网页添加到收藏夹,并返回true或false来表示是否添加成功。下面是一个示例代码: function addFavorite(…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部