如果我的页面标题中有一个.click()函数,是否有可能稍后在页面中覆盖它?是否可以在JQuery中更改.click()函数?
例如,如果我有这样的标题:
<script>
$("document").ready(function() {
$("a.lol").click(function() {
alert("aaa");
});
});
</script>
有没有可能改变$("a.lol")
提醒别的东西,而不是提醒“AAA”?
如果我的页面标题中有一个.click()函数,是否有可能稍后在页面中覆盖它?是否可以在JQuery中更改.click()函数?
例如,如果我有这样的标题:
<script>
$("document").ready(function() {
$("a.lol").click(function() {
alert("aaa");
});
});
</script>
有没有可能改变$("a.lol")
提醒别的东西,而不是提醒“AAA”?
试试这个,
$("document").ready(function() {
$("a.lol").click(function() { // initially the click event
alert("aaa");
});
$("a.lol").off('click');// off the click event
$("a.lol").on('click',function() { // again bind new click event with on()
alert("new click");
});
});
阅读和off()
您可以使用.unbind(),然后“放回”添加一个新的处理程序。
$("a.lol").unbind('click');
使用$("a.lol").off('click')
删除所有点击处理。之后,您可以安装新的。
对于旧版本的jQuery,使用unbind()
这是我的理解是,关闭()将不会删除添加的处理程序与点击() 。从文档:“.off()方法删除使用.on()附加的事件处理程序”。 –
谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! – user2217162
@BrianStephens我刚试过。对我来说工作得很好。如果你[看源代码](http://james.padolsey.com/jquery/#v=1.10.2&fn=jQuery.fn.click),你会发现'.click'只是映射到'.on内部(如'.bind'和'.delegate')。 – Blazemonger