1

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

问题是:当我单击“li”元素时,事件不会触发。

“如何?” - 你会问...所以,在这个简单的 jsFiddle 中自己看看

考虑:

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

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

谢谢。

4

4 回答 4

4

因为li's do float 并且表单有position:relative,所以表单位于li's 上方,因此您仍然可以单击“图像”

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

于 2012-08-10T11:33:33.293 回答
1

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

于 2012-08-10T11:38:11.677 回答
0

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

于 2012-08-10T11:47:23.873 回答
0

我为您创建了一个小提琴,请查看它的单击操作在所有元素上都可以正常工作

于 2012-08-10T12:22:11.330 回答