2012-11-24 56 views
0

我正在尝试为自己制作一个简单的应用程序,并使用jQuery mobile进行一些操作。我创建了3名简单的网站:jQuery Mobile div作为链接和后退按钮问题

http://jsfiddle.net/ZweUQ/2/

var clickEvent = 'click'; // 'tap' 
// global init handler 
$(document).live('pageinit', function() { 
    console.log('init'); 
    $('.clck').bind(clickEvent, function(e) { 
     console.log($(this).attr("data-href")); 
    $.mobile.changePage('#search_what'); 
}); 

这个问题我已经是第二页上的DIV,在那里我想成为一个可点击/ tapable并切换到现场3.当我点击site3即将到来,但当我点击后退按钮时,窗口切换到站点2,并立即切换回站点3。

在“什么”div和网站3上的后退按钮上单击2-3次,以便您可以看到我想要告诉您的内容。

如何解决这个问题?

回答

1

这是一个常见的jQuery移动问题。这是因为多个事件绑定到相同的元素。每当您返回上一页时,您都会再次绑定相同的事件。

这个问题有两种解决方案。

  1. 在将事件绑定到某个元素之前,请检查该同一个事件是否已经绑定。

    实施例:

    $('.menu-browse:Event(!' + touchEvent + ')').each(function(){ 
        $('.menu-browse').bind(touchEvent, function(e) { 
    
        }); 
    }); 
    

  • 每次绑定事件时间之前解除绑定。

    例子:

    $(this).unbind(); 
    $(this).bind(touchEvent, function(e) { 
    
    }); 
    
  • 可悲的是没有针对此问题没有解决方案,防弹。

    现在请看:

    http://jsfiddle.net/Gajotres/ZweUQ/4/

    +0

    感谢Gajotres!它工作正常;-) –

    +0

    没问题Niko,我在这里帮助:) – Gajotres