基于$(document)jQuery选择器的自定义事件动态操作

时间:2015-02-16 09:48:36

标签: javascript jquery oracle dom oracle-apex

我一直在我的Oracle Apex页面中使用基于自定义事件的动态操作。我将我的事件绑定到文档,然后使用“DOM对象”选择类型(文档)以指定事件的上下文。

enter image description here 这适用于Apex 4.2,但我刚刚遇到了与Apex 5相关的内容:

https://docs.oracle.com/cd/E59726_01/doc.50/e39143/toc.htm#BAJDAGJG

  

5.10基于DOM对象的动态操作的弃用

     

不推荐使用基于DOM对象的动态操作。改变你的   使用jQuery Selector或JavaScript Expression的动态操作   而不是DOM对象。

我的问题是,如何使用jQuery选择器来检测绑定到文档的事件?当我尝试使用document的jQuery选择器时,动态操作不会触发。我强烈怀疑这是因为APEX在解析动态操作时将选择器包装在引号中,使得它对文档或窗口对象上的选择器无效。

我已经意识到在标准的jQuery世界中我只会使用$(document)

enter image description here

我已经知道我可以将事件绑定到不同的DOM元素。我对此不感兴趣。我特别感兴趣的是绑定到文档。

2 个答案:

答案 0 :(得分:2)

jQuery选择器返回元素节点。您的事件绑定到文档节点,因此无法使用jQuery选择器获取它。 $(document)严格来说不是选择器。我相信$(":root").parent()会返回document对象,但这对您没有帮助,因为Oracle只允许您使用选择器,而不是方法。

Oracle早些时候用我的Apex 5工作区回复了我,所以我一直在玩游戏。解决方案在您引用的文档中。您无法在动态操作的选择类型中使用jQuery选择器,但您只需使用Javascript表达式,其值为:document

我通过创建一个指向URL的按钮来测试它:

javascript:apex.event.trigger(document,'testEvent');

我创建了一个动态操作,响应自定义事件testEvent,选择类型Javascript Expression,表达式值document。它工作正常,按钮现在通过文档处理的自定义事件触发警报。

答案 1 :(得分:0)

简短示例:动态操作自定义事件( oracle apex 18.1 )如何放置到刷新交互式报告部分:

enter image description here

enter image description here

enter image description here