2012-11-24 63 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