2013-03-23 29 views
0

我有MS Excel WebApp文檔嵌入我的網頁使用JavaScript選項(不是iframe)。 我想阻止用戶點擊單元格並以這種方式選擇它們(至少對於某些列)。jquery:我怎樣才能防止內部div中的點擊事件

但是,當我做一個jQuery的函數,捕獲在外部的Excel div中的點擊, 什麼都沒有發生,因爲Excel表的某個單元格的內部div捕捉它。問題是,我無法更改(刪除點擊功能)嵌入式Excel文檔的內容,因爲它是自動生成的。

所以問題是:如何優先考慮外部div點擊funcion並防止在內部div觸發點擊事件而不更改內部div的內容?

感謝

+0

你不能,但你可以在它的頂部位置透明的股利。這也會干擾鼠標滾輪事件等,但它聽起來像你想要一張桌子而不是電子表格...... – Dave 2013-03-23 02:07:06

+0

是的,我也有這個想法。但我需要一個電子表格,因爲它被用作計算器。我需要鎖定一些單元格(通過計數功能),防止用戶點擊它們。也許我真的必須在電子表格上做一個透明的div。謝謝! – fishead 2013-03-23 02:13:07

+0

難道你不能只用JavaScript編碼你的計算?使表格像半可編輯的電子表格(可編輯位的樣式化輸入框)一樣工作起來非常容易。如果您需要讓用戶編寫公式,它會變得更加困難,但聽起來這不是您需要的。 – Dave 2013-03-23 02:18:08

回答

1

您是否嘗試過使用event.stopImmediatePropagation()?我設置了一個快速的fiddle here

jQuery的文檔:

Keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree.

+0

我編輯了你的[小提琴](http://jsfiddle.net/Cm3S7/)。正如你所看到的,內部函數在外部函數之前被調用 - 在冒泡方向上。一般來說,事件調用首先沿樹(傳播),然後沿着樹(bubling)。但jquery不支持從傳播(向下樹)方向調用函數,所以外部函數在冒泡(沿樹方向)時被調用。正如我發現的那樣,如何使用事件處理程序從傳播方向調用funcion,但它不受IE的支持,並且不太優雅。 – fishead 2013-03-26 23:18:46

相關問題