这种能力似乎到处都是xforms的广告,但是我不能让它工作。似乎“ev:defaultAction=”“cancel”是可行的方法,但是我已经尝试过将它放在xform控件元素、action元素和model元素中。我正在尝试这样做,这样当单击xf:repeat项时,而不是索引更改时,节点集就会更改。所以我想截取事件会很容易,但是我想不出来。
对于一个测试,我尝试停止整个文档中的所有交互事件。这个放在model元素中不起作用:
<xf:action ev:event="DOMActivate" ev:defaultAction="cancel"/>这也不是:
<xf:model id="master" ev:event="DOMActivate" ev:defaultAction="cancel">这不会阻止索引的重复:
<xf:repeat ... ev:event="DOMActivate" ev:defaultAction="cancel"/>也不是这样:
<xf:repeat ...>
<script type="text/javascript" ev:event="DOMActivate" ev:defaultAction="cancel"/>
</xf:repeat>我正在使用Betterform。这放在模型元素中并不会取消默认操作,甚至根本不会触发。
<xf:action ev:event="betterform-index-changed"
ev:target="repeat" ev:defaultAction="cancel"> 我在这些事件中错过了什么?规范让它听起来非常直接。xforms-recalculate是到目前为止我唯一能够成功取消的事件,也是在许多示例中用来停止特定自动进程的事件。当事件向上和向下冒泡元素时,更改默认操作和事件顺序的通用示例很少。
发布于 2015-12-21 17:14:26
在你的例子中有几个地方是错误的。
您不能取消模型上的DOMActivate,因为它根本不接收此事件。此外,您可以将事件属性仅应用于XForms操作元素(例如,操作、设置值、插入等)。侦听器始终附加到父元素-这将接收事件。
有些事件是可以取消的,有些则不能。例如,betterform-index-changed事件是不可取消的。对于其他XForms事件,您可以在此处查看它们的定义:http://www.w3.org/TR/2009/REC-xforms-20091020/#rpm-events
https://stackoverflow.com/questions/34376086
复制相似问题