2013-06-21 28 views
1

添加我绑定到pageinit事件像这样再结合:jQuery Mobile的pageinit上的每个页面加载

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

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

}); 

我希望pageinit点击事件一次只能绑定。但是,在我的单页面应用程序中发生的情况是,即使点击返回,每次页面加载时按钮都会绑定。

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

回答

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/

0

你可以使用:

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

谢谢,我想。一()是一个捷径。 – DalSoft