Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
保持javascript与primefaces上的标记完全分离_Javascript_Jsf_Primefaces_Dom Events - Fatal编程技术网

保持javascript与primefaces上的标记完全分离

保持javascript与primefaces上的标记完全分离,javascript,jsf,primefaces,dom-events,Javascript,Jsf,Primefaces,Dom Events,我正在primefaces框架的帮助下开发一个web界面 在该接口中,目标之一是将代码划分为javascript函数,这些函数彼此之间不共享信息,并且不允许其他部分调用(这简化了测试并减少了可能用例的数量和复杂性)。 所有“零件”均采用以下方式封装: (function (window, document, undefined){ var $ = window.jQuery; // main content here })(window,document); 每个部分之间所

我正在primefaces框架的帮助下开发一个web界面

在该接口中,目标之一是将代码划分为javascript函数,这些函数彼此之间不共享信息,并且不允许其他部分调用(这简化了测试并减少了可能用例的数量和复杂性)。 所有“零件”均采用以下方式封装:

(function (window, document, undefined){
    var $ = window.jQuery;

    // main content here

})(window,document);
每个部分之间所需的通信是最小的,所需的通信是使用DOM事件进行的,其中对象在彼此之间传递。(如果事件没有被捕获,那只是一个没有动作的功能。如果它导致了一些东西损坏,js不会停止工作,还有其他原因)

在我不得不使用jsf+primefaces之前,这已经运行了相当长的一段时间,发现的bug非常少。
通过阅读文档,primefaces有许多不映射到HTML标记的XML标记。我必须处理的主要问题之一是

这个标签是许多类似于*的属性,其概念与HTML3用HTML的“on*”属性编写javascript的思想非常相似。尽管如此,这些
始终附加到特定的XML元素,如
,这就是我开始研究的地方

在primefaces文档中,有关于inline on*属性的信息,但我完全找不到关于jsf或primefaces的个性化DOM事件的信息

对于primefaces,我不得不更改javascript代码,以便可以在HTML中内联调用函数/方法。这将需要大量的工作,因为根据具体情况,js代码甚至可能不在那里(因为该页面不需要它启用的功能)

如何在primefaces上构建系统,使javascript与jsf/primefaces XML(以及我可以管理的整个HTML输出)完全分离

编辑: 我已经没有办法看哪里了,现在我将继续看primefaces的源代码。我在那里可能会更走运

编辑: 同时,我对使用不同关键字进行搜索有了一些想法,我发现了这个(请参阅:“客户端API”):


这接近于我想要的,但对于我上面提到的元素,它似乎不存在。我将继续寻找更多信息。

经过一些测试、调查等。。。我终于能够理解所发生的一切

毕竟Primefaces做的一切都是对的!
具有正确的代码来发送它应该发送的所有事件!问题在于jQuery本身

jQuery的
trigger()
方法(及其快捷方式)的工作方式是,它直接处理jQuery内部的所有事件,冒泡并调用使用
on()
(或任何速记)注册的回调

jQuery中的主要问题是,它只向DOM重新发送“click”事件,因为它试图在DOM元素中使用与事件同名的方法。在DOM中,(目前)发生这种情况的唯一情况是“单击”事件。这就是为什么我得到的是点击事件,而不是其余的事件

有了这些,迷茫和困惑最终得以解决。uff