2012-08-10 44 views
1

使用jQuery,我爲一些「li」HTML元素附加了一個「click」事件處理程序。點擊事件沒有開火。爲什麼?

的問題是:當我點擊「禮」元素,將不會觸發事件。

「怎麼了?」 - 你會問...所以,看到自己in this simple jsFiddle

考慮:

  • 我在Ubuntu系統上的Firefox 14.0.1和Chrome 16.0.912.77測試。
  • 我已經剝去我的原代碼,而「狩獵」的事業CSS,HTML和JS了很多東西。
  • 您可以在形式標籤上單擊元素,看到事件處理函數的工作。但嘗試點擊li元素...不起作用!
  • 如果你只是從「麗」的元素,或從「形式」的position: relative風格刪除float: left風格,那麼問題就消失了!

所以,我不完全詢問如何規避或解決該問題,我問爲什麼「click」事件不火。這是一個錯誤?什麼錯誤?瀏覽器? jQuery的? CSS?這對我來說根本沒有意義,我很樂意看到一個解釋!

謝謝。

+0

我沒有改變什麼在你的代碼中,它適用於我 – Peru 2012-08-10 11:42:18

回答

4

因爲li的做浮動和形式有一個position:relative,形式在於上述li的,因此,你仍可以單擊如果您正在使用螢火蟲或Webdeveloper‘圖像’

BTW。: 你可以檢測到的工具。

+0

確實......如果我只是在表單中添加'z-index:-1'樣式,我可以點擊上面的'li'。這個問題真的是一個CSS的問題:爲什麼'position:relative'使'form'站在'ul'之上? – 2012-08-10 12:35:48

+0

問題不在於相對位置,而在於float,因爲ul沒有寬度。 – SamiSalami 2012-08-10 12:57:07

1

如果您檢查與螢火蟲或類似的東西你的DOM,你會發現你的形式漂浮在您的UL的第一要素,therfore它的工作原理「形象」上,因爲它不是由您的形式隱藏。 嘗試在jsFiddle中清空你的CSS代碼,一切都將按預期工作。

0

爲什麼點擊功能無法正常工作的原因是 元素不放在裏面形式

相關問題