jQuery:为什么我要在IE9中多次点击?

时间:2013-12-08 21:58:30

标签: php jquery html

我正在使用jQuery通过post方法将数据发送到服务器。单击html页面内的span标签即可激活该功能。发布数据设置一个php会话变量,然后需要重新加载页面。 Chrome中的一切都运行良好,但在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> 

1 个答案:

答案 0 :(得分: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();
  });
});