在 JSF(特别是 primefaces)中处理 ajax 按钮时,是否可以将鼠标光标的形式更改为忙碌模式(例如:沙漏)?当我导航到下一页时,我想在 p:dataTable 加载数据时更改光标的形式。谢谢。
问问题
5862 次
2 回答
12
你可以在 CSS 和 jQuery 的帮助下实现这一点。使用 CSS,您可以创建一个更改整个文档上的光标的类。使用 jQuery,您可以添加/删除该 CSS 类。在幕后,PrimeFaces 使用 jQuery 来实现 ajax 魔法,您可以使用 PrimeFaces <4 挂钩标准 jQueryajaxStart
和ajaxStop
事件,以及 PrimeFaces 4+ 挂钩 PrimeFaces 特定pfAjaxSend
和pfAjaxComplete
事件来执行该 CSS 类的添加/删除。
CSS:
html.progress, html.progress * {
cursor: progress !important;
}
(!important
覆盖任何由style
属性设置的样式和更强的 CSS 选择器)
jQuery 和 PrimeFaces:
$(document).on("ajaxStart pfAjaxSend", function() {
$("html").addClass("progress");
}).on("ajaxStop pfAjaxComplete", function() {
$("html").removeClass("progress");
});
对于您还在<f:ajax>
其他地方使用标准 JSF 并希望拥有相同进度指示器的情况,您可以这样做:
jsf.ajax.addOnEvent(function(data) {
$("html").toggleClass("progress", data.status == "begin");
});
这也被OmniFaces 展示应用程序使用。当您在此页面上运行民意调查时,您可以在其中看到它。
于 2013-04-01T20:03:50.450 回答
0
Primefaces 本身看起来不像那样做。它有一些组件可以让您在其工作时可视化(AjaxStatus、BlockUI),但看起来它对光标没有任何作用。
你必须直接使用Javascript来做到这一点。这看起来是个不错的选择。
于 2013-04-01T06:56:49.097 回答