给html某个div绑定右键菜单,JavaScript 对任意元素,自定义右键菜单的实现方法

本文介绍如何使用JavaScript为HTML元素绑定自定义右键菜单。通过监听鼠标事件和处理函数,实现不同浏览器环境下的兼容性,展示了一个实例,包括HTML结构和JavaScript代码,用于在特定元素上显示和隐藏右键菜单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、一些概念:

1、鼠标事件有一个botton属性:返回一个整数,用于表示点击的是哪个鼠标按键。

BUG:在IE和标准DOM的鼠标事件中,唯一一个button属性值相同的是“单击右键”事件,都返回2。

2、事件onmousedown:表示鼠标按键按下的动作。

事件oncontextmenu:点击鼠标触发的另一个事件。

3、中断默认事件处理函数的方法:IE中设置returnValue=false;  标准DOM中调用preventDefault()方法。

4、事件对象:①在IE中,事件对象是window对象的一个event属性。

声明:

1301d6583b06d22b8d6f19825310116f.png

②在标准DOM中,事件对象是事件处理函数的唯一参数。

声明:

e9482e731f9d9d69b5553dd04720b6ce.png

解决兼容性:

f117c71c8b87310d99c024ce62f79e0f.png

二、实现:

HTML:

Uncle Cat is a fat white cat !

剪切

复制

粘贴

javascript:

window.onload=function(){

rightmenu('p1','d1');

}

/****

*     封装右键菜单函数:

*    elementID   要自定义右键菜单的 元素的id

*    menuID    要显示的右键菜单DIv的 id

*/

function rightmenu(elementID,menuID){

var menu=document.getElementById(menuID);      //获取菜单对象

var element=document.getElementById(elementID);//获取点击拥有自定义右键的 元素

element.onmousedown=function(aevent){         //设置该元素的 按下鼠标右键右键的 处理函数

if(window.event)aevent=window.event;      //解决兼容性

if(aevent.button==2){                   //当事件属性button的值为2时,表用户按下了右键

document.oncontextmenu=function(aevent){

if(window.event){

aevent=window.event;

aevent.returnValue=false;         //对IE 中断 默认点击右键事件处理函数

}else{

aevent.preventDefault();          //对标准DOM 中断 默认点击右键事件处理函数

};

};

menu.style.cssText='display:block;top:'+aevent.clientY+'px;'+'left:'+aevent.clientX+'px;'

//将菜单相对 鼠标定位

}

}

menu.onmouseout=function(){                  //设置 鼠标移出菜单时 隐藏菜单

setTimeout(function(){menu.style.display="none";},400);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值