我有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>
答案 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
});
从元素中删除点击侦听器