首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在两个Ajax请求之间切换

如何在两个Ajax请求之间切换
EN

Stack Overflow用户
提问于 2018-11-26 04:27:19
回答 2查看 45关注 0票数 1

我想使用该按钮在Ajax请求、english.json和french.json之间切换,但我不确定如何切换。有没有人能帮帮我?下面的简单代码只调用JSON中的每个对象。

代码语言:javascript
复制
<!doctype html>


<html>

<body>
    <h1> Frenching</h1>
    <button id="toggle"> toggle</button>
    <p> This program changes names from English to French</p>
    <h3 id="name"> </h3>
</body>

 </html>


<script src="https://code.jquery.com/jquery-3.3.1.min.js"> </script>
<script>
//Ajax request
$("document").ready(function () {
    $.getJSON("French.json").done(function (french) {
        console.log(french.lastName)
    });

    $.getJSON("english.json").done(function (english) {
        console.log(english.lastName)
    });
});
</script>

//seperate files
French.Json
{
    "firstName": "Merci",
    "lastName": " Claudè"
}


English.Json
{
    "firstName": "Gracias",
    "lastName": "Claude"
}
EN

回答 2

Stack Overflow用户

发布于 2018-11-26 23:08:18

我创建了一个全局对象来存储json中的对象,然后创建了一个触发英语和法语JSON的切换函数。

代码语言:javascript
复制
//sets a global variable 
   var globalState = {
        viewState: true,
        english: null,
        french: null
    };
//toggles function 
   $("#toggle").click(function toggleGlobalState () {
        globalState.viewState = !globalState.viewState; // sets the viewState object to false
        console.log(globalState); // toggles true and false
        if(globalState.viewState) { // if true change name to french
            $("#firstname")[0].innerHTML = globalState.french.firstName
            $("#lastname")[0].innerHTML = globalState.french.lastName
        } else { // if false change name to english
            $("#firstname")[0].innerHTML = globalState.english.firstName
            $("#lastname")[0].innerHTML = globalState.english.lastName
        }
   });
//Ajax request
$("document").ready(function () {
    $.getJSON("French.json").done(function (french) {
        globalState.french = french; // sets the french name objects in the json to a global object
        $("#firstname")[0].innerHTML = globalState.french.firstName
            $("#lastname")[0].innerHTML = globalState.french.lastName
    }).then(function(result) {
        console.log(globalState.french.firstName); //checks
    });
    $.getJSON("english.json").done(function (english) {
        globalState.english = english; // sets the english name objects in the json to a global object
    });
});
票数 1
EN

Stack Overflow用户

发布于 2018-11-26 04:53:32

如果您不介意调用这两个Ajax请求,那么应该将结果存储在一个变量中,并切换结果。

代码语言:javascript
复制
var eng;
var fr;
$("document").ready(function () {
  $.getJSON("French.json").done(function (french) {
    fr = french;
  });

  $.getJSON("english.json").done(function (english) {
    eng = english;
  });
});

如果您希望仅在需要时触发ajax,则应该在按下按钮时触发它。

代码语言:javascript
复制
var lang;
$("document").ready(function () {
  toggle = function (json) {
    $.getJSON(json).done(function (lang) {
      lang = french;
    });
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53471611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档