Re: [討論] 關於event handler
乾脆回文好了。
js core裡面沒有特別的方法可以用,我把我用來挖$.cache的方法貼一下好了:
<html>
<script src="js/jquery-1.2.6.js"></script>
<body>
<div id="panel">test</div>
<div id="target">target</div>
<script>
$("#panel").click(function(e){
for(var i in this) {
if(i.indexOf("jQuery")==0) {
var tmp = this[i];
}
}
var ret = '<table border="1" cellspacing="0" cellpadding="2">';
for (var i in $.cache[tmp]['events']['click']) {
ret += '<tr><td>' + i + ':</td><td>' +
$.cache[tmp]['events']['click'][i] +
'</td></tr>';
}
ret += '</table>';
this.innerHTML = ret;
});
$("#panel").click(function(e){
alert(this);
});
$("#target").click(function(e){
alert('target');
});
$("#panel").click(function(e){
alert('test');
});
$("#target").click(function(e){
for(var i in this) {
if(i.indexOf("jQuery")==0) {
var tmp = this[i];
}
}
var ret = '<table border="1" cellspacing="0" cellpadding="2">';
for (var i in $.cache[tmp]['events']['click']) {
ret += '<tr><td>' + i + ':</td><td>' +
$.cache[tmp]['events']['click'][i] +
'</td></tr>';
}
ret += '</table>';
this.innerHTML = ret;
});
</script>
</body>
</html>
有一點粗略,但是意思到就好。
剛剛看到,jquery還是用addEventListener或attachEvent來加入事件,把eventlistener
存在$.cache裡面,我想是為了要能removeEventListener,因為需要用到同一個函數的
reference才有辦法做。
dom2 event跟dom3 event都沒有提到怎樣query加到node上的EventListener,所以自己
管理恐怕是必須的吧?
--
Sapere Aude! 這就是啟蒙運動的口號!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.248.166.83
推
11/25 23:24, , 1F
11/25 23:24, 1F
推
11/26 09:30, , 2F
11/26 09:30, 2F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章