Javascript jQuery一个函数多次重新激活
我有许多Javascript jQuery一个函数多次重新激活,javascript,jquery,events,onclick,Javascript,Jquery,Events,Onclick,我有许多每个都包含另一个div,这是我的按钮。我有一个.one('click','.button',function(){})在每次单击时激活,并在其他地方的单个div中增加一个数字 var barPrimC = 25; var barPrimN = 6; var barPrimS = 5; var barPrimT = 48; var barSecMajC = 11; var barSecMajN = 2; var barSecMajS = 3; var barSecMajT
每个都包含另一个div,这是我的按钮。我有一个.one('click','.button',function(){})代码>在每次单击时激活,并在其他地方的单个div中增加一个数字
var barPrimC = 25;
var barPrimN = 6;
var barPrimS = 5;
var barPrimT = 48;
var barSecMajC = 11;
var barSecMajN = 2;
var barSecMajS = 3;
var barSecMajT = 19;
var incSL
$('.complete, .incomplete').click(function() {
$('.classInfo').slideUp();
if($(this).next().is(':hidden') == true) {
$(this).addClass('on');
$(this).next().show('slow');
incSL = this;
// ADD to List
$(".shortAdd").one('click','.button', function(){
$(this).text('Remove from Short List');
$(this).parent().attr("class", "shortRemove");
$(incSL).attr("class", "incompleteSL");
$('.classInfo').slideUp();
barPrimS++;
barSecMajS++;
var updateBarP = $(".bpS").find(".b-text-right").text(barPrimS);
var cat = $(this).data("category");
var catBar = $("."+cat).find(".bCommonS");
var updateBarS = catBar.filter(".bsS").find(".s-text-right").text(barSecMajS);
});
// REMOVE from List
$(".shortRemove").one('click','.button', function(){
$(this).text('Add to Short List');
$(this).parent().attr("class", "shortAdd");
$(incSL).attr("class", "incomplete");
$('.classInfo').slideUp();
barPrimS--;
barSecMajS--;
var updateBarP = $(".bpS").find(".b-text-right").text(barPrimS);
var cat = $(this).data("category");
var catBar = $("."+cat).find(".bCommonS");
var updateBarS = catBar.filter(".bsS").find(".s-text-right").text(barSecMajS);
});
}
});
我最初使用的是
上的,但它激活了我的两种方法(用于添加和删除单击)
如果我有:
<div>1st time div CLICKED (runs 1 time)</div>
<div>2nd time div CLICKED (runs 2 times)</div>
<div>3rd time div CLICKED (runs 3 times)</div>
<div>4th time div CLICKED (runs 4 times)</div>
第一次单击div(运行1次)
第二次单击div(运行2次)
第三次单击div(运行3次)
第四次单击div(运行4次)
因此,基本上如果barPrimS从5开始,当运行add
click方法时,它会变为6。当运行单独的add
click方法时,它会转到8。然后是11,然后是15
我搞不懂为什么会这样,请帮帮我!应该只增加1(5,6,7,8)。我尝试了barPrimS=barPrimS+1
和其他方法,但它们都是一样的 我最终从父对象中删除了.shortAdd
和.shortRemove
.on('click')
方法,并没有按照建议进行嵌套。然后,我将short和add组合为.shortAdd
下的if/else
语句,并简单地将.toggleClass()
与.shortRemove
类组合,检查它是否存在
这为我修正了所有的错误 。一个
将只执行一次。。建议:Never nest Event我有很多不同的东西,比如说,用户可以添加,因此我需要能够动态更改页面的一部分,以及更改单击的原始按钮的状态。这允许他们单击原始按钮将状态更改回原来的状态。每个连续的div也有自己的状态。