我有很多<div>
,每个都包含另一个按下我的按钮的div。我有一个.one('click', '.button', function(){});
在每次点击时激活,并在其他地方增加一个数字。
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);
});
}
});
我最初使用.on
,但它正在激活我的两个方法(对于ADD和REMOVE点击)。
如果我有:
<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>
所以基本上如果barPrimS从5开始,那么当add
点击方法运行时它会变为6。当运行单独的add
点击方法时,它会转到8.然后转到11然后转到15.
我无法弄清楚为什么会这样,请帮忙!应该只增加1(5,6,7,8)。我尝试了barPrimS = barPrimS + 1
和其他方式,但他们都做了同样的事情。
答案 0 :(得分:0)
我最终删除了父点击中的.shortAdd
和.shortRemove
.on('click')
方法,如建议的那样,并没有嵌套它们。然后我合并了短片,并在if/else
下添加.shortAdd
语句,在.toggleClass()
类下添加.shortRemove
,并检查它是否存在。
这解决了我的所有错误。