Das Szenario ist wie: Ich benutze Jquery, um einige ajax Eigenschaften zu implementieren. Beispiel: Wenn ein Benutzer auf die Schaltfläche "Daten abrufen" klickt, ruft Jquery die Funktion .ajax auf, um einige Daten vom Server abzurufen. Dieser Prozess kann einige Zeit dauern, daher habe ich die Funktionen .ajaxSend und .ajaxComplete hinzugefügt, um eine Animation für den wartenden Prozess zu zeigen (eigentlich ein 'Loading Data' -Gif innerhalb eines div mit dem Z-Index 999)). Während des Wartevorgangs (der 'Daten laden') möchte ich verhindern, dass Benutzer auf andere Schaltflächen klicken (Beispiel: Ich habe andere Registerkarten, Schaltflächen unter dem kleinen 'Daten laden' -Gif). Die Art, wie ich dies erreicht durch:Wie man Benutzerinteraktion verhindert, wenn auf die Antwort von AJAX gewartet wird
$("body").ajaxSend(function()
{
$(this).append('<div id="loading">Data Loading<\/div>');
$("div#error").remove();
$(this).children().not('#loading').css({'opacity':0.22});
});
$("body").ajaxComplete(function()
{
$("div#loading").remove();
$(this).children().not('#loading').css({'opacity':1});
});
Aber ich glaube nicht, die Opazität Ändern der beste Weg ist. Wenn Sie die Deckkraft nicht auf 0 setzen, können Benutzer weiterhin auf andere Schaltflächen/Register klicken. Ich weiß nicht, wie man Benutzerinteraktionen während dieses Prozesses vollständig vermeidet. Vielen Dank!!
tatsächlich verwende ich JqueryUI auch. Ja, ich habe gerade die modale Option des Dialogs ausprobiert. Es ist einfach, den gewünschten Blockeffekt zu erzielen. Gibt es jedoch eine Möglichkeit, die Überkreuzung (Schließen-Schaltfläche) in der oberen rechten Ecke des Dialogfelds zu entfernen? – WilliamLou
Siehe http://stackoverflow.com/questions/896777/remove-close-button-on-jqueryui-dialog –
danke. Ich wählte dies als meine Antwort, da ich bereits JqueryUI verwendet habe, so dass ich kein anderes Plugin nur für BlockUI-Effekt – WilliamLou