问题描述
- js应该如何编写右击事件
-
我想实现鼠标右击时,触发某个事件.
应该怎么做呢,求具体代码!
解决方案
非常简洁高效的JS右键菜单
在制作网页的时候,我们很经常需要用到右键菜单,网上这类的控件很多,很眩. 但这类控件一般都比较大,需要写的代码比较多,而且样式比较固定. 而本组件相对简单高效, 定制性很强, 菜单全由自己DIY!
function csMenu(_object, _menu)
{
this.IEventHander = null;
this.IFrameHander = null;
this.IContextMenuHander = null;
this.Show = function(_menu)
{
var e = window.event || event;
if (e.button == 2)
{
if (window.document.all)
{
this.IContextMenuHander = function(){return false;};
document.attachEvent("oncontextmenu", this.IContextMenuHander);
}
else
{
this.IContextMenuHander = document.oncontextmenu;
document.oncontextmenu = function(){return false;};
}
window.csMenu$Object = this;
this.IEventHander = function(){window.csMenu$Object.Hide(_menu);};
if (window.document.all)
document.attachEvent("onmousedown", this.IEventHander);
else
document.addEventListener("mousedown", this.IEventHander, false);
_menu.style.left = e.clientX;
_menu.style.top = e.clientY;
_menu.style.display = "";
if (this.IFrameHander)
{
var _iframe = document.getElementById(this.IFrameHander);
_iframe.style.left = e.clientX;
_iframe.style.top = e.clientY;
_iframe.style.height = _menu.offsetHeight;
_iframe.style.width = _menu.offsetWidth;
_iframe.style.display = "";
}
}
};
this.Hide = function(_menu)
{
var e = window.event || event;
var _element = e.srcElement;
do
{
if (_element == _menu)
{
return false;
}
}
while ((_element = _element.offsetParent));
if (window.document.all)
document.detachEvent("on"+e.type, this.IEventHander);
else
document.removeEventListener(e.type, this.IEventHander, false);
if (this.IFrameHander)
{
var _iframe = document.getElementById(this.IFrameHander);
_iframe.style.display = "none";
}
_menu.style.display = "none";
if (window.document.all)
document.detachEvent("oncontextmenu", this.IContextMenuHander);
else
document.oncontextmenu = this.IContextMenuHander;
};
this.initialize = function(_object, _menu)
{
window._csMenu$Object = this;
var _eventHander = function(){window._csMenu$Object.Show(_menu);};
_menu.style.position = "absolute";
_menu.style.display = "none";
_menu.style.zIndex = "1000000";
if (window.document.all)
{
var _iframe = document.createElement('iframe');
document.body.insertBefore(_iframe, document.body.firstChild);
_iframe.id = _menu.id + "_iframe";
this.IFrameHander = _iframe.id;
_iframe.style.position = "absolute";
_iframe.style.display = "none";
_iframe.style.zIndex = "999999";
_iframe.style.border = "0px";
_iframe.style.height = "0px";
_iframe.style.width = "0px";
_object.attachEvent("onmouseup", _eventHander);
}
else
{
_object.addEventListener("mouseup", _eventHander, false);
}
};
this.initialize(_object, _menu);
}
=======================需要显示的菜单,一般用DIV======================
打开
打印
回复发件人
全部回复
转发
分配
垃圾邮件
删除
归档此邮件
分拣此邮件
解决方案二:
document.getElementById("test").onmouseup=function(oEvent) {
if (!oEvent) oEvent=window.event;
if (oEvent.button==2) {
//-- do something for user right click
// alert("Mouse up");
}
}
解决方案三:
<script>
document.oncontextmenu = function () { alert('按下右键!'); }
</script>
解决方案四:
<html>
<script type="text/javascript">
<!--
document.onmousedown = function(e){
var e = e || window.event
alert("e"+e.button);
if(e.button == "2"){
alert("执行右键代码");
}
}
//-->
function right()
{
var e=window.event;
alert(e.button);
if(e.button=="0"){
alert("左键");
}else{
alert("右键");
}
}
</script>
<table border=1>
<tr id=test name=test height=200 onmousedown="right()" ><td>88888888888888888888888888</td></tr>
</table>
</html>
解决方案五:
编写右击事件一般可分为一下几步:
一、捕获,捕获右击事件很简单,楼上的同仁都已做了清楚的回答;
二、阻止默认右击事件,浏览器默认的会为右击事件做出响应,即我们点击右键时看到的菜单,要想対右键点击事件做出明确的响应,这一步是非常重要的一步;
三、编写自己的处理逻辑;
相关文章
- 编程-为什么我按了计算按扭,没显示出面积结果?
- jsp-JSP中编写JS代码过程中,调用了一个JSP表达式,发现一个问题,麻烦各位大神解答
- 初学JS一个关于Popup menu的简单的问题
- javascript-Easyui-dataview中的datagrid 选中行 右击事件怎么写
- 右击拖拽不弹出对话框-鼠标右键拖拽图片超链接,拖拽完成后如何不弹出对话框
- visual stu-在C#里面添加一段代码,叫网页的右键才到没法使用 ,求救 应该怎么做项目里面有用到EXCEL
- myeclipse-如何去除代码前的黄色灯泡
- 关于使用vs2015编写mfc应用程序的问题
- js-真心求教一个问题,关于编写web的外挂工具app或者桌面程序,具体请进,真心谢谢了
- javascript-JS touch事件冒泡问题
【云栖快讯】2017互联网超级工程阿里双11完美落幕,交易额突破1682亿,但阿里工程师如何玩转“超级工程”,背后黑科技又是如何?12月13-14日,12位大咖直播分享揭秘1682亿背后技术实践,马上预约 详情请点击
热门推荐
- 高性能云服务器2折起
- 云服务器配置
- 技术资料
- 云计算
- 域名
- shell
- node.js
- 问答
- java
- mysql
- C++
- python
- jQuery
- Android
- asp
- PHP技巧
- jQuery教程
- JavaScript技巧
- JS
- SEO
- sql server
- mysql教程
- 前端
- 技术文集
- 技术
- 主题地图
- A
- z
- 云服务器哪家好
- API
- 大数据
- 云安全
- 云存储
- 云计算
- 获取公众号授权失败
- 兼容性疑难解答
- path
- stm32
- jsonobject
- product
前三篇
- 用管理员帐号新建了一个未知类型的文件(test.bdsgroup) 删除时提示无权限
- IE滚动条自动跑到了最上面
- jquery mobile 折叠列表的问题
后三篇
- ruby-【RUBY】Win32下,Process.kill(&quot;INT&quot;,pid)报错
- remoteviews-RemoteViews是干嘛用的
- sql2005安装成功后无法使用
(yq.aliyun.com)为您免费提供js应该如何编写右击事件相关信息,包括
js
的信息
,所有js应该如何编写右击事件相关内容均不代表的意见!
该页面h5页面的地址是:https://m.aliyun.com/yunqi/wenzhang/show_65477,您可以点击js应该如何编写右击事件-手机站访问。