【发布时间】:2015-06-21 19:40:52
【问题描述】:
我目前正在尝试创建一个列表,使用 javascript 和 jquery 返回一串关键字,如下所示:keyword+keyword+keyword+keyword
我试图通过在单击关键字时添加一个类“活动”来做到这一点,如下面的代码所示,然后检查它是否处于活动状态,如果是,则将其添加到带有附加 + 号的列表(除了第一个元素,受计数器限制),但是每当我连续单击一个项目 2 次时,它都会成功添加到列表中,但不会从中删除,但通常会添加和减去计数器,以及控制台日志报告类的变化。 代码如下;
$("ul.cats li, ul.colours li ").click(function(){
$(this).toggleClass( 'active');
});
var taglist = '';
var tagcounter = 1;
$("ul.cats li.tag").click(function(){
var tag = $(this).attr("list-data");
if ($(this).hasClass('active')) {
if (tagcounter <= 0){
taglist += '+';
}
taglist += tag;
tagcounter -= 1;
console.log('Active');
} else {
var tag2 = '+' + tag;
taglist = taglist.replace(tag2," ");
tagcounter += 1;
console.log('inactive');
}
console.log(taglist, 'Taglist', tagcounter);
});
从这里我相信我应该得到一个keyword1+keyword2+keyword3的列表,但是每当一个项目被连续点击两次时,(keyword1连续呈现活动和非活动)关键字没有被删除但计数器增加并且类被呈现为非活动状态。 使用示例关键字“light”,这是控制台返回的内容;
[Log] Active
[Log] Light Taglist 0
[Log] inactive
[Log] Light Taglist 1 (wordpress, line 237)
这表明该类检查并且 if 语句正常运行,但替换功能不正常。 请有人提供解决方案,我将永远感激不尽!
【问题讨论】:
标签: javascript jquery string if-statement replace