【问题标题】:Click event not firing. Why?单击事件未触发。为什么?
【发布时间】:2012-08-10 11:30:54
【问题描述】:

使用 jQuery,我为一些“li”HTML 元素附加了一个“click”事件处理程序。

问题是:当我点击“li”元素时,事件没有触发。

“怎么样?” - 你会问吗……所以,你自己看in this simple jsFiddle

考虑:

  • 我已经在我的 Ubuntu 系统中测试了 Firefox 14.0.1 和 Chrome 16.0.912.77。
  • 在“寻找”原因的同时,我从原始代码的 CSS、HTML 和 JS 中删除了很多内容。
  • 您可以单击表单中的 label 元素来查看事件处理函数的工作情况。但是尝试点击 li 元素...不起作用!
  • 如果您只是从“li”元素中删除float: left 样式,或者从“form”中删除position: relative 样式,那么问题就消失了!

所以,我并不是在问如何规避或解决该问题,而是在问为什么“点击”事件不会触发。这是一个错误吗?来自什么的错误?浏览器? jQuery? CSS?这对我来说根本没有意义,我很想看到一个解释!

谢谢。

【问题讨论】:

  • 我没有更改您的代码中的任何内容,它对我有用

标签: javascript jquery html css events


【解决方案1】:

因为li是浮动的,并且表单有position:relative,所以表单位于li的上方,因此您仍然可以点击“图片”

顺便说一句: 如果您使用的是 Firebug 或 Webdeveloper 工具,您可以检测到这一点。

【讨论】:

  • 确实...如果我只是在表单中添加z-index: -1 样式,我可以点击上方的li。这个问题确实是一个 CSS 问题:为什么 position: relative 使 form 高于 ul???
  • 问题不是相对位置,而是浮动,因为ul没有宽度。
【解决方案2】:

如果您使用 firebug 或类似的东西检查您的 DOM,您会注意到您的表单漂浮在 ul 的第一个元素上,因此它适用于“图像”,因为它没有被您的表单隐藏。 尝试清空 jsFiddle 中的 css 代码,一切都会按预期工作。

【讨论】:

    【解决方案3】:

    点击功能不起作用的原因是 li 元素没有放在 form

    【讨论】:

      【解决方案4】:

      我为你制作了一个小提琴,请看一下click action working fine on all elements

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多