Ajax是否会将每次点击的请求增加一倍?

时间:2018-09-29 09:45:11

标签: javascript jquery ajax

我有3个选项卡,在第3个选项卡上单击,我正在将数据加载到第3个选项卡中,但是一旦加载数据并单击第3个选项卡,它将加载数据两次,即发送请求2次,当我单击第3个选项卡时时间将请求加倍并发送4个请求,依此类推。

我的代码:

// Separate Ajax call for coach stylish view Data
    $(document).on( "click", '.ajaxTab' , function( e ){
        e.preventDefault();
        var $this = $(this),
            loadUrl = $this.attr('data-href'),
            target = $this.attr('data-target');

        $.get(loadUrl, function(data) {
            $(target).html(data);
        });

        $this.tab('show');
        return false;
    });

标签链接:

<li><a class="ajaxTab" data-toggle="tabAjax" href="#" 
    data-href="<?php echo $this->CxHelper->Route('eb-admin-get-coach-stylish-view') ?>?userId={{userId}}" 
  data-target="#coach-view-stylish-ajax" 
 rel="tooltip">Coach View (Stylised)</a>
</li>

3 个答案:

答案 0 :(得分:1)

jQuery off方法可删除现有的点击事件处理程序http://api.jquery.com/off/

 $(document).off().on( "click", '.ajaxTab' , function( e ){
    e.preventDefault();
    var $this = $(this),
        loadUrl = $this.attr('data-href'),
        target = $this.attr('data-target');

    $.get(loadUrl, function(data) {
        $(target).html(data);
    });

    $this.tab('show');
    return false;
});

答案 1 :(得分:1)

使用一个代替。 [http://api.jquery.com/one/][1]

$(document).one( "click", '.ajaxTab' , function( e ){
            e.preventDefault();
            var $this = $(this),
                loadUrl = $this.attr('data-href'),
                target = $this.attr('data-target');

            $.get(loadUrl, function(data) {
                $(target).html(data);
            });

            $this.tab('show');
            return false;
        });


  [1]: http://api.jquery.com/one/

答案 2 :(得分:1)

也许单击是在增量值中调用的,通常我会在ajax成功方法中设置单击侦听器时看到这一点。

您可能想从from scipy.spatial import distance x1 = np.asarray([[1,2,3],[4,5,6]]) x2 = np.asarray([[1,2,40],[14,5,6]]) for i in range(0,x1.shape[0]): print distance.euclidean(x1[i], x2[i]) 取消绑定事件

.ajaxTab

$(document).on( "click", '.ajaxTab' , function( e ){ $('.ajaxTab').unbind(); .........//the other logic }); 从元素中删除点击侦听器