0

我正在尝试为自己制作一个简单的应用程序并使用 jQuery mobile 玩一下。我创建了 3 个简单的网站:

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,我想成为可点击/可点击并切换到站点 3。当我单击时,site3 即将到来,但是当我单击后退按钮时,然后windows 正在切换回站点 2 并立即再次切换回站点 3。

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

如何解决这个问题?

4

1 回答 1

1

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

这个问题有2个解决方案。

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

    例子:

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

或者

  1. 每次绑定事件时,先取消绑定。

    例子:

    $(this).unbind();
    $(this).bind(touchEvent, function(e) {
    
    });
    

可悲的是,这个问题没有万无一失的解决方案。

现在看看:

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

于 2012-11-24T14:29:55.123 回答