首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jquery中绑定和取消绑定事件

在Jquery中绑定和取消绑定事件
EN

Stack Overflow用户
提问于 2013-10-20 20:19:34
回答 1查看 149关注 0票数 0
代码语言:javascript
复制
$(document).on("pagebeforeshow", function(event) {
            $("#mybtn").on("click", function(e) {
                $.mobile.showPageLoadingMsg();
                $.mobile.changePage("twitter.html", {
                    reloadPage: false, changeHash: true,
                });
                $('#mybtn').unbind('');

            });
        });

你能告诉我为什么解除绑定在Jquery mobile中很重要吗?请告诉我最好的解除绑定事件的方法。我用下面的方法来绑定和解除绑定events.Is

EN

回答 1

Stack Overflow用户

发布于 2013-10-20 20:38:48

看一下这个例子:

代码

代码语言:javascript
复制
$("#page2").on("pagebeforeshow", function(){
    $("#testBtn").on("click", function(){
       alert("Hi!"); 
    });
});

如果从第1页转到第2页,然后单击名为Click me的按钮,您将看到警告"Hi!“正确显示。事件是绑定在pagebeforeshow上的,到目前为止一切都很好。

现在返回到page1,然后再次加载page2,再次单击Click me按钮。您将看到该警告显示了2次!这是错误的。这就是为什么你需要在再次绑定事件之前unbind它的原因。

基本上,每次加载page2时,都会将一个新事件绑定到按钮上。因此,如果您加载该页面的10倍,您将有10个事件绑定到按钮,这些事件将在按钮被单击时触发。

下面是unbind的一个有效方法(为了解除事件绑定,我使用了off()):

代码

代码语言:javascript
复制
$("#page2").on("pagebeforeshow", function(){
    $("#testBtn").off("click").on("click", function(){
       alert("Hi!"); 
    });
});

看一看here,了解我为什么使用off()而不是unbind(),如果您想了解off()工作原理,也可以使用here

我希望这有助于澄清你的疑虑..

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19477232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档