Javascript jQuery移动导航模糊;点击";事件到HTML图像映射

Javascript jQuery移动导航模糊;点击";事件到HTML图像映射,javascript,jquery-mobile,Javascript,Jquery Mobile,我使用jQuery mobile进行导航,包括后退按钮,因此设置如下: $.mobile.page.prototype.options.addBackBtn = true; 为了使用jQuery mobile navigation访问从HTML图像地图链接的页面,我使用了绑定到pagecreate的以下代码: $(page).find('MAP').bind('click', function(e) { alert("Map click"); }); $(page).find('A

我使用jQuery mobile进行导航,包括后退按钮,因此设置如下:

$.mobile.page.prototype.options.addBackBtn = true;
为了使用jQuery mobile navigation访问从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选项启用)还是浏览器的后退按钮返回图像映射,这些事件似乎不再触发。区域对象既不会导致其原始的预覆盖行为表现为常规超链接,也不会收到任何警报

这是在一些iOS和Android手机上的Webkit浏览器中出现的——不知何故,桌面浏览器不会出现这个问题


有人知道让我的HTML图像映射继续工作的bug/fix/workaround吗,即使jQueryMobile已经将其来回导航了一遍?非常感谢所有帮助。

问题是,当您使用jQuery mobile进行导航时,有时可能会将重复的ID注入DOM,这就是为什么他们建议您首先不要使用ID

不幸的是,图像必须通过id(或名称)引用它们的映射,因此使用上述方法,您最终可以操作一个映射,而您的img标记指向另一个具有相同id的映射,该id位于DOM中的其他位置

修复方法并不完美,但它需要将地图的id设置为唯一的,然后在尝试更新每个地图区域的处理程序之前,设置相应图像的usemap属性