2013-03-23 58 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