隐藏所有 primefaces blockui 元素
Hide all primefaces blockui elements
我有很多 .xhtml 视图。其中很多都有blockui元素,例如:
<p:blockUI block="tab" widgetVar="subscriberSelectBlocker">
</p:blockUI>
有时每个视图有超过 1 个。
为了隐藏上面的 blockUI,我在相应的 bean SubscriberFilterBean.java:
中有一个方法
public void hideSubscriberSelectBlockUi() {
RequestContext.getCurrentInstance().execute("subscriberSelectBlocker.hide()");
}
现在的问题是我需要一次隐藏所有现有的blockuis。
我可以像上面那样单独隐藏它们,但这意味着我将基本上重复相同的代码超过 15 次,并且执行所有这些方法的方法将是巨大的。
有没有办法隐藏标签的所有元素?
像
public void hideSubscriberSelectBlockUi() {
RequestContext.getCurrentInstance().execute("p:blockui.hide()");
}
当您在 PrimeFaces 元素中指定 widgetVar 时,JavaScript 小部件对象被实例化并分配给 window 范围内具有指定名称的全局变量。这意味着可以找到并操纵此对象。
我建议通过 blockui id 找到它们。 Widget 对象包含它的id,因此在获取所有全局对象和页面中所有blockui id 后,我们可以确定哪些全局对象是blockui widgets。可以使用 jQuery class 选择器从页面获取 Blockui id,因为它们都有共同的 css 样式:.ui-blockui
.
这里是 JavaScript 显示页面上所有 blockui 组件的示例代码:
var keys = Object.getOwnPropertyNames( window );
var blocks = $('.ui-blockui');
var blockIds = [];
blocks.each (function (index,value) {
blockIds[index] = value.id;
});
$.each(keys, function (index, value) {
var obj = window[ value ];
if (obj != null) {
gObj = window[ value ];
if(gObj.blocker != undefined) {
if ($.inArray(gObj.blocker.attr('id'), blockIds) != -1) {
gObj.show();
}
}
}
});
我有很多 .xhtml 视图。其中很多都有blockui元素,例如:
<p:blockUI block="tab" widgetVar="subscriberSelectBlocker">
</p:blockUI>
有时每个视图有超过 1 个。 为了隐藏上面的 blockUI,我在相应的 bean SubscriberFilterBean.java:
中有一个方法public void hideSubscriberSelectBlockUi() {
RequestContext.getCurrentInstance().execute("subscriberSelectBlocker.hide()");
}
现在的问题是我需要一次隐藏所有现有的blockuis。 我可以像上面那样单独隐藏它们,但这意味着我将基本上重复相同的代码超过 15 次,并且执行所有这些方法的方法将是巨大的。
有没有办法隐藏标签的所有元素? 像
public void hideSubscriberSelectBlockUi() {
RequestContext.getCurrentInstance().execute("p:blockui.hide()");
}
当您在 PrimeFaces 元素中指定 widgetVar 时,JavaScript 小部件对象被实例化并分配给 window 范围内具有指定名称的全局变量。这意味着可以找到并操纵此对象。
我建议通过 blockui id 找到它们。 Widget 对象包含它的id,因此在获取所有全局对象和页面中所有blockui id 后,我们可以确定哪些全局对象是blockui widgets。可以使用 jQuery class 选择器从页面获取 Blockui id,因为它们都有共同的 css 样式:.ui-blockui
.
这里是 JavaScript 显示页面上所有 blockui 组件的示例代码:
var keys = Object.getOwnPropertyNames( window );
var blocks = $('.ui-blockui');
var blockIds = [];
blocks.each (function (index,value) {
blockIds[index] = value.id;
});
$.each(keys, function (index, value) {
var obj = window[ value ];
if (obj != null) {
gObj = window[ value ];
if(gObj.blocker != undefined) {
if ($.inArray(gObj.blocker.attr('id'), blockIds) != -1) {
gObj.show();
}
}
}
});