我正在构建海狸建造者模块,我的js给出了我从未得到过的错误。我正在运行一个for循环来运行我的代码2次,但是当我在同一页面上使用我的模块3次然后它加载我的jquery循环3 * 2次= 6我根本不想要... 。:(
任何人都可以指导我如何限制我的代码或我的循环只运行一次不是三次???这是我的整个jquery代码:
for (var i = 0; i < numItems; i++) {
var attachFun = function(){
if(jQuery('.masonaryOuter_v' +i+'').length){
var $container = jQuery('.masonaryOuter_v'+i+'');
$container.isotope({
filter: '*',
animationOptions: {
duration: 750,
easing: 'linear',
queue: false
}
});
}
if(jQuery('#filterlist_v'+i+' a').length){
jQuery('#filterlist_v'+i+' a').click(function(){
jQuery('#filterlist_v'+i+' .current').removeClass('current');
jQuery(this).addClass('current');
var selector = jQuery(this).attr('data-filter');
$container.isotope({
filter: selector,
animationOptions: {
duration: 750,
easing: 'linear',
queue: false
}
});
return false;
});
}
}
}
任何人都要引导我,因为我从未做过这种工作:(
答案 0 :(得分:0)
如何设置全局变量以确定代码是否已经运行?
if (window.alreadyrun == null) {
for (var i = 0; i < numItems; i++) {
var attachFun = function() {
if (jQuery('.masonaryOuter_v' + i + '').length) {
var $container = jQuery('.masonaryOuter_v' + i + '');
$container.isotope({
filter: '*',
animationOptions: {
duration: 750,
easing: 'linear',
queue: false
}
});
}
if (jQuery('#filterlist_v' + i + ' a').length) {
jQuery('#filterlist_v' + i + ' a').click(function() {
jQuery('#filterlist_v' + i + ' .current').removeClass('current');
jQuery(this).addClass('current');
var selector = jQuery(this).attr('data-filter');
$container.isotope({
filter: selector,
animationOptions: {
duration: 750,
easing: 'linear',
queue: false
}
});
return false;
});
}
}
}
window.alreadyrun = 1;
}