jQuery Mobile pageinit在每个页面加载时重新绑定

时间:2013-06-21 22:18:34

标签: jquery-mobile

将我的绑定添加到pageinit事件中,如下所示:

$('#mypage').on("pageinit", function () {

     $('#login-sumbit').on('click', function () { 
       console.log('button clicked');
     });

});

我希望pageinit只绑定一次click事件。但是我的单页应用程序中发生的情况是,每次加载页面时按钮都会绑定,即使单击后面也是如此。

这导致不希望的多重复绑定。关于在我的单页面应用程序中只使用一次绑定一次的事件的任何想法,以便在同一会话中再次加载页面(后退按钮,加载内联页面)不会重新绑定?

2 个答案:

答案 0 :(得分:0)

看起来我自己找到了答案,结果非常正确,每次加载页面时都会触发pageinit,即使它没有从服务器重新加载,否则在显示新页面时会触发什么。

pageinit是正确的事件,但我需要使用.one而不是.on,.one只会绑定一次。

$('#mypage').on("pageinit", function () {

     $('#login-sumbit').one('click', function () { 
       console.log('button clicked');
     });

});

现在一切都按预期工作了。更好的是,我发现你可以使用.one与pageinit事件,以更好地控制你的绑定和数据加载完美符合我的要求。

http://api.jquery.com/one/

答案 1 :(得分:0)

您可以使用:

 $('#login-sumbit').off('click').on('click', function(e) {
     console.log('button clicked');
 });