我在一个由click事件调用的函数中有一个局部变量。该变量根据点击哪个按钮而不同。在ajax url中使用本地javascript变量
我然后试图将该变量传递给另一个包含AJAX的函数。
我似乎无法在ajax函数中使用第一个局部变量。
我试过使用“window.myVariable”使其成为全球但它不工作。正如你可以在代码中看到的,我还用我的变量作为参数添加了对下一个函数的调用,但没有添加骰子。我在控制台中收到的错误是“变量'用户'未定义。”
我根本无法访问局部变量以外的原始函数。任何人都可以看到它为什么拒绝成为一个全局变量?
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>
只需添加用户参数'function getStateOfChat(user){...}' – jcubic
^如果传递一个参数也会导致'undefined'错误,这意味着您分配给'user'的值,即'user1'本身就是'undefined'。 –
^添加到这一点,你已经分配了'var user1 =“john”;'在html外的javascript代码块 – anu