87,843
社区成员




var func = function() {//事件函数在清除时也要用到。
alert("p标签被点击");
}
function bindEvent() {
document.getElementById("myp").addEventListener("click", func, false);
}
bindEvent();
function unBindEvent() {
document.getElementById("myp").removeEventListener("click", func, false);
}
unBindEvent();
function bindEvent() {
$('#myp').on('click', function() {
alert("p标签被点击");
});
}
function unBindEvent() {
$('#myp').off('click');
}
var func;
function bindEvent() {
func = function() {//事件函数在清除时也要用到。
alert("p标签被点击");
}
document.getElementById("myp").addEventListener("click", func, false);
}
bindEvent();
function unBindEvent() {
document.getElementById("myp").removeEventListener("click", func, false);
}
unBindEvent();
或者你用 jquery 绑定和清除事件,jquery 内部会自己记录所有已经绑定的事件函数,在清除事件时就不需要你提供了。
[/quote]
感谢您的回答,我现在遇到了一个问题:事件绑定的方法是在第三方提供的方法里,采用addEventListener动态追加的,我不能控制事件的绑定,我现在想重写这个事件,所以想把以前的事件删除,追加我自己的。结果遇到了这个问题,原来绑定的事件删除不掉。第三方的方法和上面的代码结构类似,事件响应方法在函数的内部定义,有什么方法能删除掉吗?[/quote]
那就没办法了,只有重建这个元素,但这可能用引起其它的问题。
function unBindEvent() {
document.getElementById("myp").outerHTML+="";
}
var func;
function bindEvent() {
func = function() {//事件函数在清除时也要用到。
alert("p标签被点击");
}
document.getElementById("myp").addEventListener("click", func, false);
}
bindEvent();
function unBindEvent() {
document.getElementById("myp").removeEventListener("click", func, false);
}
unBindEvent();
或者你用 jquery 绑定和清除事件,jquery 内部会自己记录所有已经绑定的事件函数,在清除事件时就不需要你提供了。
[/quote]
感谢您的回答,我现在遇到了一个问题:事件绑定的方法是在第三方提供的方法里,采用addEventListener动态追加的,我不能控制事件的绑定,我现在想重写这个事件,所以想把以前的事件删除,追加我自己的。结果遇到了这个问题,原来绑定的事件删除不掉。第三方的方法和上面的代码结构类似,事件响应方法在函数的内部定义,有什么方法能删除掉吗? var func;
function bindEvent() {
func = function() {//事件函数在清除时也要用到。
alert("p标签被点击");
}
document.getElementById("myp").addEventListener("click", func, false);
}
bindEvent();
function unBindEvent() {
document.getElementById("myp").removeEventListener("click", func, false);
}
unBindEvent();
或者你用 jquery 绑定和清除事件,jquery 内部会自己记录所有已经绑定的事件函数,在清除事件时就不需要你提供了。