从函数中重新加载jquery$(函数()

从函数中重新加载jquery$(函数(),jquery,function,Jquery,Function,我有一个js应用程序,在页面加载时加载 var lang = 'en'; i18n.setLng(lang, function(err, t) { /* loading done */console.log('loaded ' + lang) }); $(function() { Mirador({ "id": "viewer", "layout": "1x1" }); }); 但是,我希望能够动态切换语

我有一个js应用程序,在页面加载时加载

    var lang = 'en';
    i18n.setLng(lang, function(err, t) { /* loading done */console.log('loaded ' + lang) });

    $(function() {
      Mirador({
        "id": "viewer",
        "layout": "1x1"
      });
    });
但是,我希望能够动态切换语言,因此添加了一个小型语言切换器

Html

虽然它改变了变量lang,但它没有重新加载mirador应用程序。我知道我想重新加载页面,但使用新变量,我只是在努力寻找正确的语法(function(){});这是一个文档就绪功能。当页面文档在浏览器上就绪时会自动触发。您不需要在任何其他函数中调用它。甚至您可以根据需要多次调用Mirador函数。在我的示例中,当文档处于就绪状态以及用户单击并更改语言时,会调用Mirador。Mirador您可以根据需要进行功能设置

$(function() {
      Mirador({
        "id": "viewer",
        "layout": "1x1"
      });

 $('#switch').click(function(){
     if(lang==='de') {
        lang = 'en';
    //reload app page
   } else {
     lang = 'de';
     $("#switch").html("English");
// reload app page
   }
  });

});

如果重新加载页面,您所做的更改将丢失,因为您正在重新加载页面。您的Miradir调用位于一个自调用函数中,该函数在每次语言更改后只运行一次,您需要调用它。@daveNewton是的,这就是为什么我不想只使用重新加载,而只是重新加载mirador内容。我想我看到了我的错误o现在。为什么相同的代码两次将Mirador初始化放在函数内部并调用该函数?我已经向您介绍了流程如何与文档就绪函数一起工作。如果您不需要多次重新初始化Mirador函数,并且有一个重新加载页面的过程,您可以从单击函数替换Mirador初始化代码.我已经更新了我的代码,“重新加载应用程序页面”是什么意思?如果重新加载页面,一切都会消失。@dave我想他的意思是单击“重新初始化Mirador应用程序”。
    $('#switch').click(function(){
     if(lang==='de') {
        lang = 'en';
     $("#switch").html("Other");
   } else {
     lang = 'de';
     $("#switch").html("English");

   }
  });
$(function() {
      Mirador({
        "id": "viewer",
        "layout": "1x1"
      });

 $('#switch').click(function(){
     if(lang==='de') {
        lang = 'en';
    //reload app page
   } else {
     lang = 'de';
     $("#switch").html("English");
// reload app page
   }
  });

});