我有一个下拉按钮,提供两种语言,我的母语和英语。问题是,当我用英语更改它时,它会更改该页面上的文本,但其余页面仍然是我的原生。该脚本与所有这些脚本相关联。有什么我错过了吗? 以下是下拉列表的代码:
<div class="dropdown pull-right">
<button class="btn btn-success dropdown-toggle btn-lg" id="menu1" type="button" data-toggle="dropdown">Јазик / Language
<span class="caret"></span></button>
<ul class="dropdown-menu" role="menu" aria-labelledby="menu1">
<li role="presentation" value="1"><a role="menuitem" tabindex="-1" href="#">Македонски</a></li>
<li role="presentation" value="2"><a role="menuitem" tabindex="-1" href="#">English</a></li>
</ul>
</div>
以下是我如何更改脚本中的文本。这些来自本网站的两页:
$("ul li").on('click', function () {
var val = $(this).val();
if(val==2){
$("#buy").html("Buy ticket");
$("#validate").html("Validate ticket");
$("#q1").html("How many tickets would you like to buy?");
$("#back").html("Back");
$("#q2").html("Please enter" + "<span class='den'></span>" + "denars in the slot labeled as 'ENTER'");
$("#q3").html("Please take your ticket/s and your change!");
$("#q4").html("Thank you");
$("#q5").html("Please show the barcode on your ticket in front of the camera.");
$("#q6").html("Successful validation! Thank you!");
}else{
$("#buy").html("Купи карта");
$("#validate").html("Валидирај карта");
$("#q1").html("Колку карти сакате да купите?");
$("#back").html("Назад");
$("#q2").html("Ве молиме внесете вредност од" + "<span class='den'></span>" + "денари во слотот назначен со „ВНЕСИ“.");
$("#q3").html("Ве молиме подигнете ја/ги картата/те и кусурот.");
$("#q4").html("Ви благодариме!");
$("#q5").html("Ве молиме покажете го баркодот од картата пред камерата");
$("#q6").html("Успешна валидација! Ви благодариме!");
}
});
答案 0 :(得分:1)
当您从一个页面导航到另一个页面时,第一页的状态或其任何JavaScript状态都不会传递到第二页;第二页从头开始加载,好像第一页从未存在过一样。
我假设您的页面中的导航菜单在所有页面中都是相同的,但即使页面可能相同,当您从第A页到第B页时发生的是整个页面,包括常见的导航在初始的点击前状态下,东西正在从头开始加载和渲染。
您可以使用多种技术将一个状态从一个页面传递到下一个页面。对于这种情况,最简单的可能是cookie。
每当语言发生变化时,你要做的就是设置一个像lang = 1或lang = 2这样的cookie。使您的语言切换代码成为一个单独的功能,可以通过点击来调用,也可以在页面加载(或页面就绪)上调用。在页面加载/就绪时,如果存在lang cookie,请使用lang cookie的值调用语言切换函数。您的所有页面都具有相同的点击和页面加载/准备的代码。