请问 javascript 怎样获取已绑定事件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问 javascript 怎样获取已绑定事件?相关的知识,希望对你有一定的参考价值。
想知道一个div 被绑定了哪些事件 通过什么方法可以获得?
<!DOCTYPE html><html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/**
* 此处代码必须放到任何javascript代码之前。另外增加事件只能用addEventListener形式。
*/
(function()
Element.prototype.eventListenerList = ;
Element.prototype._addEventListener = Element.prototype.addEventListener;
Element.prototype._removeEventListener = Element.prototype.removeEventListener;
Element.prototype.addEventListener = function(a,b,c)
this._addEventListener(a,b,c);
if(!this.eventListenerList[a]) this.eventListenerList[a] = [];
this.eventListenerList[a].push(b);
;
Element.prototype.removeEventListener = function(a,b,c)
this._removeEventListener(a, b,c);
if(this.eventListenerList[a])
var arr = this.eventListenerList[a];
for(var i =0;i<arr.length;i++)
if(arr[i].toString() === b.toString())
this.eventListenerList[a].splice(i,1);
)();
//此后为测试代码。
window.onload = function()
var dom = document.getElementById("test");
//增加三个监听
dom.addEventListener("click",function()
console.info("click function");
,false);
dom.addEventListener("click",function()
console.info("click function2");
,false);
dom.addEventListener("click",function()
console.info("click function3");
,false);
console.log(dom.eventListenerList["click"].length);
//读出监听的方法
var clicks = dom.eventListenerList.click;
if(clicks) clicks.forEach(function(f)
console.log("I listen to this function: "+f.toString());
);
//删除监听
dom.removeEventListener("click",function()
console.info("click function");
,false);
console.log(dom.eventListenerList["click"].length);
;
</script>
</head>
<body>
<button id="test" >测试</button>
</body>
</html>
以上代码修改了原生的Element对象,是否需要这样做,请自己酌情处理。
望采纳!
参考技术A $("p").bind('click dblclick mouseover mouseout',function(event)$("div").html("Event: " + event.type);
); 参考技术B $(obj).data("events")
javaScript事件绑定
事件绑定,就是要对某一个东西进行操作。(因为你想让他实现什么效果,所以就得绑定他,哈哈哈!)
要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数。所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称。
在JavaScript中,有三种常用的绑定事件的方法:
- 在DOM元素中直接绑定;
- 在JavaScript代码中绑定;
- 绑定事件监听函数。
1、用例子的形式来给大家解释一下,如何在DOM元素中直接绑定。
单击一个按钮,弹出警告框的代码
<input onclick="myAlert()" type="button" value="点击我,弹出警告框" />
<script type="text/javascript">
function alert(){
alert("hello,我是警告框");
}
</script>
是不是很简单,然后继续吧...
2、在JavaScript代码中绑定(绑定事件可以使JavaScript代码与HTML标签分离,文档结构清晰,便于管理和开发)
<input id="demo" type="button" value="点击我,显示 type 属性" />
<script type="text/javascript">
document.getElementById("demo").onclick=function(){
alert(this.getAttribute("type")); // this 指当前发生事件的HTML元素
}
</script>
3、绑定事件监听,绑定事件的另一种方法是用 addEventListener() 或 attachEvent() 来绑定事件监听函数。
①.addEventListener(eventName,handle,useCapture)。
标准的绑定事件监听函数的方法
eventName | 事件名称。注意,这里的事件名称没有“ on ”,如鼠标单击事件 click ,鼠标双击事件 doubleclick ,鼠标移入事件 mouseover,鼠标移出事件 mouseout 等。 |
handle | 事件句柄函数,即用来处理事件的函数。 |
useCapture |
Boolean类型,是否使用捕获,一般用false 。
|
②.attachEvent(eventName,handle);
elementObject | DOM对象(即DOM元素)。 |
eventName | 事件名称。注意,与addEventListener()不同,这里的事件名称有“ on ”,如鼠标单击事件 onclick ,鼠标双击事件 ondoubleclick ,鼠标移入事件 onmouseover,鼠标移出事件 onmouseout 等。 |
handle | 事件句柄函数,即用来处理事件的函数。 |
以上是关于请问 javascript 怎样获取已绑定事件?的主要内容,如果未能解决你的问题,请参考以下文章