特定元素的忙碌指示器(检票口)
Busy Indicator on specific Elements (Wicket)
我正在按照本指南 https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=87917 及其目前的工作进行操作。
我如何修改此代码,我不再对 ajax 调用做出全局反应,而是例如仅对 3 个特定按钮做出反应。
window.onload = setupFunc;
function setupFunc() {
// ? $('.test').on('click',clickFunc);
hideBusysign();
Wicket.Event.subscribe('/ajax/call/beforeSend', function(attributes, jqXHR, settings) {
showBusysign();
});
Wicket.Event.subscribe('/ajax/call/complete', function(attributes, jqXHR, textStatus) {
hideBusysign();
});
}
function hideBusysign() {
$('#loader').hide();
}
function showBusysign() {
$('#loader').show();
}
function clickFunc(eventData) {
var clickedElement = (window.event)? event.srcElement: eventData.target;
if ((clickedElement.tagName.toUpperCase() == 'BUTTON' || clickedElement.tagName.toUpperCase() == 'A' || clickedElement.parentNode.tagName.toUpperCase() == 'A' || (clickedElement.tagName.toUpperCase() == 'INPUT' && (clickedElement.type.toUpperCase() == 'BUTTON' || clickedElement.type.toUpperCase() == 'SUBMIT'))) && clickedElement.parentNode.id.toUpperCase() != 'NOBUSY') {
showBusysign();
}
}
实施 IAjaxIndicatorAware 以在每个组件的基础上显示 Ajax 指标:
https://ci.apache.org/projects/wicket/guide/6.x/guide/ajax.html#ajax_4
您可以使用传递的 attributes
对象。它有一个名为 c
的 属性(对于 'component')——这是导致 Ajax 调用的 HTML 元素的 ID。
所以你可以这样做:
if (jQuery('#' + attributes.c).hasClass('showIndicator')) {
showBusysign();
}
我正在按照本指南 https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=87917 及其目前的工作进行操作。 我如何修改此代码,我不再对 ajax 调用做出全局反应,而是例如仅对 3 个特定按钮做出反应。
window.onload = setupFunc;
function setupFunc() {
// ? $('.test').on('click',clickFunc);
hideBusysign();
Wicket.Event.subscribe('/ajax/call/beforeSend', function(attributes, jqXHR, settings) {
showBusysign();
});
Wicket.Event.subscribe('/ajax/call/complete', function(attributes, jqXHR, textStatus) {
hideBusysign();
});
}
function hideBusysign() {
$('#loader').hide();
}
function showBusysign() {
$('#loader').show();
}
function clickFunc(eventData) {
var clickedElement = (window.event)? event.srcElement: eventData.target;
if ((clickedElement.tagName.toUpperCase() == 'BUTTON' || clickedElement.tagName.toUpperCase() == 'A' || clickedElement.parentNode.tagName.toUpperCase() == 'A' || (clickedElement.tagName.toUpperCase() == 'INPUT' && (clickedElement.type.toUpperCase() == 'BUTTON' || clickedElement.type.toUpperCase() == 'SUBMIT'))) && clickedElement.parentNode.id.toUpperCase() != 'NOBUSY') {
showBusysign();
}
}
实施 IAjaxIndicatorAware 以在每个组件的基础上显示 Ajax 指标:
https://ci.apache.org/projects/wicket/guide/6.x/guide/ajax.html#ajax_4
您可以使用传递的 attributes
对象。它有一个名为 c
的 属性(对于 'component')——这是导致 Ajax 调用的 HTML 元素的 ID。
所以你可以这样做:
if (jQuery('#' + attributes.c).hasClass('showIndicator')) {
showBusysign();
}