【问题标题】:Safari no getting jquery click functionSafari没有获取jquery点击功能
【发布时间】:2011-11-12 00:55:32
【问题描述】:

我有:

<script>
jQuery(document).ready(function(){
    $("#mydiv").click(function(){

       $("#content").load("html/page.php");

    });
});

</script>

在图像映射内部:

<div id="mydiv"><area shape="rect" coords="318,122,413,221" href="#"/></div>

前一行的另一个版本:

<area shape="rect" coords="318,122,413,221" href="#" id="mydiv"/>

这些(图像映射线的两个版本)在我所有的浏览器中都可以使用,但在 Safari (5.0.5) 中除外。在 Safari 中我单击但没有任何反应。常规链接有效,因此图像映射没有任何问题。

我尝试删除href 中的#,然后它适用于Safari,但不适用于其余部分。如果我删除整个 href="#" 会发生什么,我会回到不在 Safari 中工作并为其余部分工作的状态

任何人都知道如何让点击在所有浏览器中工作?

非常感谢

【问题讨论】:

  • 我遇到了同样的问题,Safari 在 标签上时似乎不会触发 jquery 点击事件。

标签: jquery safari hyperlink click


【解决方案1】:

它不能解决您的问题,但您可能需要将 jQuery(document).ready(function(){ 更改为 $(function(){。它的作用完全相同。

关于您的问题,您是否尝试过使用debugger?这将帮助您了解是否触发了点击处理程序。

如果是href属性的内容导致问题,你可以试试把“/”而不是“#”?显然,当 JavaScript 被禁用时,这将给出不同的行为。当 JS 被禁用时,你希望发生什么?

另外,area 必须有一个祖先地图元素。是吗?

如果您将点击处理程序绑定到区域本身而不是其父级,这可能会有所帮助。

【讨论】:

  • 感谢您的回答。不能使用/,回到根文件夹:(
  • 其他建议呢?
  • 一直在使用事件监听器,但没有列出,即使我在地图上单击时也没有.. 也一直在使用 area 元素中列出的 noref 元素.. 但无法使其工作
  • 尝试将监听器添加到区域元素而不是 div。我认为这是最有可能的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-30
  • 2014-03-05
相关资源
最近更新 更多