代码之家  ›  专栏  ›  技术社区  ›  hd.

标签Ajax响应加载到错误的窗格中

  •  0
  • hd.  · 技术社区  · 7 年前

    我对标签中的Ajax请求有问题。选项卡的内容是通过Ajax请求加载的。如果用户快速点击并浏览选项卡,并且在收到前一个单击选项卡的Ajax响应之前,内容将加载到错误的选项卡窗格中,而不是在其窗格中。

    代码如下:

     $(".nav-tabs [data-url]").on('click', function() {
        tb_loadUrl = $(this).data('url');
        tb_paneID = $(this).attr('href');
    
        $.ajax({
             url: tb_loadUrl, 
             success: function(data) {
                $(tb_paneID).html(data);
             }
        });
    
     });
    

    我怎样才能解决这个问题?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Stanley Nguyen    7 年前

    您使用的是全局变量,这就是为什么每当在前一个ajax调用完成之前触发一个新的click事件时 tb_panelID 将更新。试试这个

    $(".nav-tabs [data-url]").on('click', function() {
        var tb_loadUrl = $(this).data('url');
        var tb_paneID = $(this).attr('href');
    
        $.ajax({
             url: tb_loadUrl, 
             success: function(data) {
                $(tb_paneID).html(data);
             }
        });
    
     });