【发布时间】:2020-09-29 10:51:46
【问题描述】:
当我单击一次我在控制台上收到 4 个请求时遇到问题。像这样。
这是我的代码
var opener = listTreck.find('.row-holder');
opener.on('click.b touchstart.b', function() {
refreshPosition();
var self = jQuery(this);
if (!self.parent().hasClass('active')) {
openerParent.removeClass(activeClass);
self.parent().addClass('active');
} else if (self.parent().hasClass('active')) {
openerParent.removeClass(activeClass);
}
if (!row.hasClass('details-open')) {
colSlide.stop().animate({
marginLeft: -slideWidth
}, animeSpeed);
trackDetails.stop().animate({
marginLeft: -slideWidth
}, animeSpeed, function() {
row.addClass('details-open');
resetStyle();
colHidden.css({
display: 'block',
position: 'absolute',
left: '0',
marginLeft: -slideWidth
});
});
}
if (self.attr('data-src')) {
var url = self.data('src');
//var data = { _token: _globalObj._token };
var data = {};
if (isRoute('/favorites')) {
data.f = true;
}
jQuery.ajax({
url: url,
type: 'GET',
data: data,
dataType: 'html',
success: function(data) {
ajaxHolder.hide().text('');
var html = jQuery('<div>').html(data);
html.appendTo(ajaxHolder);
ajaxHolder.fadeIn('normal', function() {
scrollTrackInfo();
});
},
error: function() {
if (window.lonsole) {
console.log('ajax Error');
}
}
});
}
});
当我单击 .. 时,我遇到了控制台请求问题。为什么我的 ajax 调用了 4 次。我在此代码上正确获取了数据,但唯一的问题是……收到很多请求。 当我单击 .. 然后我在控制台请求上遇到问题。为什么我的 ajax 调用 4 次。我在此代码上正确获取了数据,但唯一的问题是……收到很多请求。 当我单击 .. 然后我在控制台请求上遇到问题。为什么我的 ajax 调用 4 次。我在此代码上正确获取了数据,但唯一的问题是...收到很多请求。
'980..': {
on: function() {
initTrackInfo();
jQuery('.side-menu').each(function(){
var set = jQuery(this);
set.find('.scrollable-area').each(function(){
if(this.jcf) this.jcf.destroy();
});
jcf.customForms.replaceAll(set.get(0));
});
},
【问题讨论】:
-
您可能多次添加了事件处理程序。
-
您可以在循环中添加事件处理程序吗?您没有将
opener设置为特定元素,它与整个类匹配,因此每次通过循环时,您都会为类的每个元素添加另一个侦听器。 -
没有调酒师.......
-
您是否在动态创建元素并在每次创建新元素时添加事件处理程序?对动态创建的元素使用事件委托。
-
@Barmar 我检查了所有内容......它们不是事件循环。