2013-12-08 57 views
0

我正在使用jQuery通过post方法将数据发送到服务器。点击html页面内的span标签激活该功能。发布的数据设置了一个php会话变量,之后页面需要重新加载。在Chrome中一切正常,但在IE9中,我必须点击几次才能看到效果。如果我在函数中放置了一个警报,它可以正常工作(但我不希望那个警报)。jQuery:为什么我必须在IE9中多次点击?

我不是jQuery的有经验的用户。

这里是jQuery的

$(document).ready(function(){ 
    $("#ciril").click(function(){ 
    $.post('myphpfile.php', { 'lang' : 'cir'}); 
    location.reload(); 
    }); 
    $("#latin").click(function(){ 
    $.post('myphpfile.php', { 'lang' : 'lat'}); 
    location.reload(); 
    }); 
    }); 

的代码,这里是span标签

<span id="latin">Text1</span> 
<span id="ciril">Text2</span> 

回答

0

你不想当你使用Ajax做一个位置重新加载,因为它那种否定首先使用Ajax的一点。

如果您坚持无论如何做它,你需要在回调

$(function(){ 
    $("#ciril").on("click",function(){ 
    $.post('myphpfile.php', { 'lang' : 'cir'}, function() { 
    location.reload(); 
    }); 
    $("#latin").on("click",function(){ 
    $.post('myphpfile.php', { 'lang' : 'lat'}, function() { 
    location.reload(); 
    }); 
}); 

重装如果您正在加载的页面是一样的页面,你都在,只需提交一个表单,并在服务器返回你

这页是一个更合适的方法

<span class="lang" id="lat">Text1</span> 
<span class="lang" id="cir">Text2</span> 

使用

$(function(){ 
    $(".lang").on("click",function(){ 
    $.post('myphpfile.php', { 'lang' : this.id }, function() { 
    location.reload(); 
    }); 
}); 
+0

太棒了!第一条建议工作正常。我理解你对重新加载的建议,但我需要根据点击更改整个页面内容(实际上,这是我如何将页面从cyrilic切换到拉丁字符的方式,反之亦然)。我不知道如何在没有重新加载页面的情况下完成所有这些操作(并且为每个页面执行此操作),因为翻译功能在php脚本中。 – user3080857

+0

由于您必须重新加载,为什么不直接使用&lang = lat或&lang = cyr加载页面,而不是浪费Ajax电话? – mplungjan

+0

再次感谢。首先,我打算将翻译员放在客户端,因为我使用两种字母(塞尔维亚语)的相同语言,翻译功能并不复杂。所以,我相信可以将翻译完全放在客户端。但是,我stil没有开发这些jquery翻译功能,所以我使用PHP的,这是使用回发和重新加载的原因。 Chrome和Firefox中的事情都没有问题,但在IE中是问题所在。感谢您帮助我解决问题。 – user3080857

相关问题