2011-09-27 85 views
0

我使用jQuery Mobile的導航系統,其中包括後退按鈕,所以下面的設置:jQuery的移動導航模糊「點擊」事件HTML圖像映射

$.mobile.page.prototype.options.addBackBtn = true; 

爲了使用jQuery移動導航去從HTML圖像映射鏈接的網頁,我用下面的代碼,勢必pagecreate:

$(page).find('MAP').bind('click', function(e) { 
    alert("Map click"); 
}); 

$(page).find('AREA').bind('click', function(e) { 
    alert("Area click"); 
    e.preventDefault(); 
    $.mobile.changePage($(this).attr('href')); 
}); 

什麼似乎發生是第一次我的形象的地圖加載,一切正常,當我接觸的一個該地區,我得到這兩個警報,首先「地區點擊」,然後「地圖點擊」,和那麼漂亮的jQuery手機導航動畫就會帶我去我要去的地方。但是,無論我使用jQuery mobile的後退按鈕(由上面的addBackBtn選項啓用)還是瀏覽器的後退按鈕返回到圖像映射,這些事件似乎都不再起作用。區域對象既不會導致它們的原始超前鏈接行爲,也不會獲得我的任何警報。

這是在WebKit瀏覽器的一對夫婦的iOS和Android手機 - 不知何故桌面瀏覽器不會出現此問題。

任何人都知道有我的HTML圖像映射繼續工作,它已經從jQuery Mobile的導航離開後也和回來的bug /修復/解決方法嗎?所有幫助非常感謝。

回答

0

問題原來是,當你使用jQuery移動導航系統,它有時可以結束了注入重複的ID到DOM,這就是爲什麼他們勸你從來沒有在第一時間使用的ID。

不幸的是,圖片必須通過id(或名稱)引用他們的地圖,所以使用上述方法,您可以最終處理一張地圖,而您的img標籤指向另一個具有相同ID的地圖DOM。

的解決方法是不漂亮,但它是設置地圖一些獨特的ID,然後設置相應的圖像的USEMAP屬性,嘗試更新每個地圖區域的處理程序之前。