由于jQuery Mobile的导航时左右保持在DOM某些页面,一个页面可以来回时多次访问。
如果我绑定到一个页面如下图所示,并在这里面进行绑定我的所有网页的逻辑,其中包括“嵌套元素绑定”:
// listener for the page to show:
$(document).on('pagebeforeshow.register', '#register', function() {
// stuff
// page event bindings:
$(document).on('click.register', '.registerSubmitter', function(e) {
// do something
});
});
来回使我嵌套结合附加多次。
眼下试图解决这个像这样(不工作...):
$(document).on('click', '.registrySubmitter', function(e) {
if ( $(this).attr('val') != true ) {
$(this).attr('val') == true;
// do something
}
});
所以我只允许第一装订传递,然后我阻止走来每隔结合的尝试。
虽然这个工作,这是很不理想。
问题 :
如何与事件绑定时,应适当结合/ offed方案? 有没有一种通用的方法(杀掉所有)或做我必须做的每一结合这种结合? 也许更重要的是:它是更好的性能,明智的做法是做一个绑定一次,并保持或绑定/解除绑定,当用户来到/离开页面?
感谢您的输入!
编辑 :
所以我命名空间我的所有事件,然后监听pageHide像这样:
$(document).on('pagehide.register', '#register', function(){
$(document).off('.registryEvents');
});
尽管这似乎解除绑定,这也激发当过我关闭了页面上的自定义对话框/ selectmenu,所以离开该页前,我失去我的绑定。 所以部分答案,我应该使用关闭(),但如何绑定到该页面真正被留下与启闭选择菜单?