2011-09-27 87 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属性,尝试更新每个地图区域的处理程序之前。