【问题标题】:jQuery .click handler not working in SafarijQuery .click 处理程序在 Safari 中不起作用
【发布时间】:2010-02-13 19:40:08
【问题描述】:

我有 jQuery .click(function() 事件处理程序附加到我通过 ID 选择的元素

示例:

$('#deletethis').click(function() {
   $(this).hide()
} 

在我的 $(document).ready 中,但这在 Safari 中根本不起作用,只是没有任何反应,但在 Chrome、Firefox 和 IE 中运行良好。控制台不报告任何 javascript 错误。 .click 处理程序中的任何内容都不会被执行。有没有办法让 safari 达到同样的效果?

【问题讨论】:

  • 发布一个完整的代码示例,其中包含一小部分 HTML 和 javascript。因为这应该工作,所以很可能你还有其他事情要做。
  • 我假设您没有遗漏代码中的结尾 ')'。否则它将无法在其他浏览器中运行。除此之外,Safari 对这段代码没有任何问题。可能其他地方的错误正在影响它。

标签: javascript jquery safari


【解决方案1】:

没关系,发现这是一个问题,只有 Safari 没有加载 javascript 文件,但所有其他浏览器都是。现在必须弄清楚这一点。 . .

【讨论】:

  • 您找到答案了吗?我也有同样的问题。
【解决方案2】:

你试过了吗?

$('#deletethis').click(function() { $(this).hide(); });

注意额外的 ;);

【讨论】:

    【解决方案3】:

    在 hide() 后面加一个分号。

    用');'结束点击功能在函数之后。

    【讨论】:

      【解决方案4】:

      #deletethis 是链接吗?可能带有 href=""。如果是这样,它的默认操作是导航到页面的 url。

      您可以通过在点击处理程序中调用 e.preventDefault() 来阻止默认操作。

      $('#deletethis').click(function(e) {
          e.preventDefault();
          $(this).hide();
      });
      

      【讨论】:

      • "return false;"防止事件冒泡到更高级别的对象。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-05
      • 1970-01-01
      相关资源
      最近更新 更多