Ich habe eine lokale Variable innerhalb einer Funktion von einem Click-Ereignis aufgerufen. Die Variable unterscheidet sich je nachdem, auf welche Schaltfläche geklickt wird.Verwenden Sie lokale JavaScript-Variable in AJAX-URL
Ich versuche dann, diese Variable an eine andere Funktion übergeben, die AJAX enthält.
Ich kann nicht scheinen, die erste lokale Variable in der Ajax-Funktion zu verwenden.
Ich habe versucht mit "window.myVariable" es global zu machen, aber es funktioniert nicht. Wie Sie im Code sehen können, habe ich auch den Aufruf der nächsten Funktion mit meiner Variable als Parameter, aber keinen Würfel hinzugefügt. Der Fehler, den ich in der Konsole erhalte, ist "variable 'user' ist nicht definiert."
Ich kann nicht auf die lokale Variable außerhalb ihrer ursprünglichen Funktion überhaupt zugreifen. Kann jemand sehen, warum es sich weigert, eine globale Variable zu werden ?.
function getStateOfChat(){
\t if(!instanse){
\t \t instanse = true;
\t \t $.ajax({
\t \t \t type: "POST",
url: user + "/process.php",
\t \t \t data: {
\t \t \t \t \t \t 'function': 'getState',
\t \t \t \t \t \t 'nickname': nickname,
\t \t \t \t \t \t 'file': file
\t \t \t \t \t \t },
\t \t \t dataType: "json",
\t \t \t
\t \t \t success: function(data){
\t \t \t \t state = data.state;
\t \t \t \t instanse = false;
\t \t \t },
\t \t \t });
\t } \t
}
var user1 = "john";
var user2 = "andrew";
// ============== USER 1 ==============
<button type="button" class="btn btn-info btn-lg chatBtnMain" data-toggle="modal" data-target="#myModal2" id="chatBtn1">
Chat to
<span class='nickname'>
John
</span>
</button>
<script type="text/javascript">
document.getElementById('chatBtn1').addEventListener('click', runScript1);
function runScript1() {
var user = user1;
getStateOfChat(user);
}
</script>
// ============== USER 2 ==============
<button type="button" class="btn btn-info btn-lg chatBtnMain" data-toggle="modal" data-target="#myModal3" id="chatBtn2">
Chat to
<span class='nickname'>
Andrew
</span>
</button>
<script type="text/javascript">
document.getElementById('chatBtn2').addEventListener('click', runScript2);
function runScript2() {
var user = user2;
getStateOfChat(user);
}
</script>
einfach Benutzerparameter hinzufügen 'function getStateOfChat (user) {...}' – jcubic
^Wenn das Übergeben eines Parameters auch zu einem 'undefinierten' Fehler führt, bedeutet das den Wert, den Sie' user' zuweisen, dh 'user1' selbst 'undefiniert'. –
^Hinzufügen zu diesem Punkt haben Sie zugeordnet 'var user1 =" John ";' in HTML außerhalb Javascript Codeblöcken – anu