Hallo un guten Morgen an alle,
ich habe ein Problem wo ich nun keinen Ansatz mehr weiß, ich habe im Crome den Debugger benutzt und da lief alles ab wie es soll. Ich habe das im Firefox getestet und da klappt das prima.
Folgendes Szenario, ich drücke einen Button der eine Berechnung auf dem Server durchführen soll, dass klappt auch super. Als Result kommt ein JSON zurück mit der Berechnung. Das ganze passiert, na klar auf Ajax.
So un der Zeit wo die Antwort noch nicht da ist, ergo die Berechnung noch auf dem Server läuft, soll das Datenblatt im Browser mit einem Ajaxloader blockiert werden. So das der Nutzer sichtbar sieht das was passiert.
Und im Crome will der Ajaxloader einfach nicht einblenden.
Hier mein Code.
Nach Button Klick soll der Loader eingeblendet werden.
Wenn eine Antwort vom Server kommt, werden die alten Daten aus dem DOM entfernt.
Ein Plugin Funktion wird angestoßen die den Tabellen DOM mit den neuen Daten erstellt.
Der Ajax Loader soll ausgeblendet werden.
So alles funktioniert, nur das einblenden nicht und das wie gesagt nur im Crome nicht.
Hier noch die CSS.
Und die Ajax Loader Funktion im Plugin.
Habt ihr eine Idee was ich da tun kann?
Vielen Dank für eure Hilfe. Gruß Litter
ich habe ein Problem wo ich nun keinen Ansatz mehr weiß, ich habe im Crome den Debugger benutzt und da lief alles ab wie es soll. Ich habe das im Firefox getestet und da klappt das prima.
Folgendes Szenario, ich drücke einen Button der eine Berechnung auf dem Server durchführen soll, dass klappt auch super. Als Result kommt ein JSON zurück mit der Berechnung. Das ganze passiert, na klar auf Ajax.
So un der Zeit wo die Antwort noch nicht da ist, ergo die Berechnung noch auf dem Server läuft, soll das Datenblatt im Browser mit einem Ajaxloader blockiert werden. So das der Nutzer sichtbar sieht das was passiert.
Und im Crome will der Ajaxloader einfach nicht einblenden.
Hier mein Code.
Code:
calcBtn.on("click", function(event) { $("#pane_south").append(object.table.ajaxLoader({ load : true, blockElem : "#pane_south", posTop : 50 })); var response = {}; $.ajax({ url : fmLvTable.opts.ajaxUrl, type : "POST", dataType : "JSON", contentType : "application/json; charset=utf-8", data : JSON.stringify(params), success : function(data) { var result = JSON.parse(JSON.stringify(data)); if (result != "") { $("#p_lv_auftrag_calc").find(".row").remove(); response.p_lv_auftrag_calc = result; object.table.tableMap().dataIsSaved(); } }, async : false }); if (typeof response.p_lv_auftrag_calc != "undefined") { object.table.tableMap().rowHandles("loadMap", "refreshMap", { config : fmLvTable.opts, result : response, paginate : { of : 1, to : readCookieValue("rows") } }); object.table.ajaxLoader({ load : false, blockElem : "#pane_south" }); } });
Wenn eine Antwort vom Server kommt, werden die alten Daten aus dem DOM entfernt.
Ein Plugin Funktion wird angestoßen die den Tabellen DOM mit den neuen Daten erstellt.
Der Ajax Loader soll ausgeblendet werden.
So alles funktioniert, nur das einblenden nicht und das wie gesagt nur im Crome nicht.
Hier noch die CSS.
Code:
.ajax_loader { background-color: #c6c6c6; opacity: 0.80; -webkit-opacity: 0.80; -moz-opacity: 0.80; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; filter:alpha(opacity=50); height: 360px; z-index: 20000; text-align: center; display: table-cell; vertical-align: middle; }
Code:
$this.ajaxLoader = function(settings) { if (typeof settings.load != "undefined" && settings.load == true) { var elemObj = { elem : $(settings.blockElem), width : function() { return this.elem.width(); }, height : function() { return this.elem.height()} }; var loader = $("<div>"); var loadImg = $("<img src='" + $this.opts.pathToImages + "ajax-loader.gif' name='loader' alt='daten werden geladen' />"); loader.addClass("ajax_loader"); loader.append(loadImg); loadImg.css({ position : "relative", top : ((elemObj.height() / 2) - ((typeof settings.posTop != "undefined") ? settings.posTop : 0)) }); loader.css({ width : elemObj.width(), height : elemObj.height(), position : "absolute", left : 0, top : 0 }); return loader; } else { $(".ajax_loader").remove(); } };
Vielen Dank für eure Hilfe. Gruß Litter
Kommentar