我是JavaScript新手。我正在尝试更新一个div,它在添加和删除类件之前工作正常。问题是当我添加类时,我似乎无法在单击下一个图像时将其删除。我使用了一个删除类选项,但它似乎不想工作。
感谢任何帮助。这是代码:
$('[class^="question"]').on('click', function(e) {
e.preventDefault();
var numb = this.className.replace('question', '');
$('[id^="answer"]').hide();
$('.question*').removeClass('question*selected');
$('#answer' + numb).show();
$('.question' + numb).addClass('question' + numb + 'selected');
});
Here is a link我正在玩的小提琴。
感谢。
答案 0 :(得分:0)
您可以通过定义全局变量来跟踪添加的类。我在CODEPEN中创建了一个工作示例。
$(document).ready(function() {
var appliedClass = "container1";
var classNo = 1;
$(".buttonCon").click(function() {
if ($(".container").hasClass(appliedClass)) {
$(".container").removeClass(appliedClass);
classNo++;
if (classNo > 4) {classNo = 1;}
appliedClass = "container" + classNo;
$(".container").addClass(appliedClass);
}
});
});
我有appliedClass
变量,可以跟踪最新添加的类。每次单击带有.buttonCon
类的按钮时,此变量将更新为新添加的类。下一次,首先我们删除前一课。然后我们添加了新的。在您的情况下可能不需要第二个if
语句,但在我的示例中,我需要它来循环遍历container1
到container4
类。
答案 1 :(得分:0)
你已经为自己设置了一个非常难以上班的课堂结构 - 这比你制作它要容易得多。给出你的每个问题"链接课程'问题'和唯一的id" question1"," question2"等等。答案节点相同:class" answer"和id" answer1"," answer2"等
现在,您可以轻松访问$('.question')
的所有问题链接或$('.answer')
的所有答案,并可以根据需要使用ID识别各个节点:
$('.question').on('click', function(e) {
e.preventDefault();
var numb = this.id.replace('question', '');
var answerNode = $('#answer'+numb);
if (answerNode.hasClass('hide')) {
// the Q they clicked on is not yet visible
$('.answer').addClass('hide'); // hide all answers
answerNode.removeClass('hide'); // show the desired one
} else {
// the Q they clicked on is already visible, so toggle it back off
answerNode.addClass('hide');
}
});