Aufruf von ajax-Funktion onload und onclick gleichzeitig
Ich habe eine Ajax-Funktion in einer externen javascript-Datei:
ajax.js
function webservice(x){
jQuery.ajax
({
//some code here
});
Data = function(data){
if(x==1)
{
for(i=0;i<10;i++)
{
webservice(i);
alert"Onload");
}
}
else
if(x==5)
{
for(i=0;i<10;i++)
{
webservice(i);
alert ("Onclick");
}
}
}
Habe ich eine andere html-Seite, die ist:
webservice.html
<html>
<title>Call web service</title>
<head>
<script type="text/Javascript" src="jquery-1.9.1.js"></script>
<script type = "text/javascript" src="ajax.js"></script>
<script>
window.onload=function()
{
webservice(1)('onload'); //call 1
}
</script>
</head>
<body>
<input id="webservice" type = "button" name = "webservice" value = "Call Webservice"
onclick="webservice(5)"/>
</body>
</html>
So, ich will rufen Sie die gleiche Funktion im onLoad und onclick der Schaltfläche, so dass sowohl die Aufrufe gleichzeitig ausführen kann.
Aber bei onload ausgeführt wird, für e.g sagen Sie 3 mal und ich habe dann klicken Sie auf die Schaltfläche onload hält und onclick ausgeführt wird.
Ich möchte onclick auch zu laufen und "onload" starten ab 4. iteration und beide sollten Warnmeldung anzeigen gleichzeitig oder 1 1.
Also bitte helft mir.
Vielen Dank im Voraus.
Alternative Verfahren sind ebenfalls willkommen.
- Verwenden Sie die jQuery event-Handler (z.B.
$.on()
), statt inline-oderwindow.onload
. Vor allemwindow.onload
, jQuery, um Ihre Veranstaltung für seine eigenen. Wenn Sie die Verwendung von jQuery, ist am besten, nur verwenden die jQuery-Handler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil
$.ajax
ist eine asynchrone Funktion. In Ihrer aktuellen version, ist Ihr code aufgerufen wird möglicherweise vor dem Ende der AJAX-call. Also, Sie haben ein Verhalten wird.Um das zu beheben, muss Ihr code verschoben werden in der Erfolgs-callback so :
Darüber hinaus vermeiden Sie inline-JS.
Ersetzen
Durch
Und
Durch