Jsf 2 隐藏p:特定秒后的消息
如何使用jsf primefaces在指定的一组秒后隐藏消息(对于onedit和oncancel,或者单独隐藏)Jsf 2 隐藏p:特定秒后的消息,jsf-2,primefaces,Jsf 2,Primefaces,如何使用jsf primefaces在指定的一组秒后隐藏消息(对于onedit和oncancel,或者单独隐藏) <p:messages id="messages" showDetail="true" autoUpdate="true" closable="true" /> <p:dataTable id="platform" var="platform" value="#{platformMB.platformList}" editable="true"> &
<p:messages id="messages" showDetail="true" autoUpdate="true" closable="true" />
<p:dataTable id="platform" var="platform" value="#{platformMB.platformList}" editable="true">
<p:ajax event="rowEdit" listener="#{platformMB.onEdit}"
update=":formConfig:messages"/>
<p:ajax event="rowEditCancel" listener="#{platformMB.onCancel}"
update=":formConfig:messages"/>
....
....
您可以通过挂接特殊的pfAjaxComplete
事件,在PrimeFaces ajax请求完成时调用JS函数
$(document).on("pfAjaxComplete", function() {
// ...
});
您可以使用JS计划在n毫秒后调用函数
setTimeout(function() {
// ...
}, 1000);
可以使用jQuery或更好的方法隐藏DOM元素
$(element).slideUp();
你当然不想过早地隐藏它们。让我们假设我们从3秒的最小超时开始,作为人眼的“预热”时间,然后对消息中的每个单词计算200毫秒
现在,让我们把它们放在一起:
$(document).on("pfAjaxComplete", function() {
var $messages = $(".ui-messages div");
if ($messages.length) {
var wordCount = $messages.text().split(/\W/).length;
var readingTimeMillis = 3000 + (wordCount * 200);
setTimeout(function() {
$messages.slideUp();
}, readingTimeMillis);
}
});
如果要防止消息显示,请将global=false添加到ajax eventsprevent?不,让它在展示几秒钟后消失如果我太初学请原谅。。但是我把它放在哪里了?Js脚本?在正文中?只要上下文中有可用的
$
,就可以在任何地方使用。通常的方法是将JS代码放入JS文件中,然后将其包含在HTML头中。另见例如。