更改链接颜色和DIV文本

时间:2014-07-29 22:36:09

标签: colors hyperlink tags

请参阅以下JSFiddle:

http://jsfiddle.net/MWcAF/56/

$(document).ready(function () {
    $('[id^=answer]').not('#answer').hide();
    $('[class^="question"]').on('click', function (e) {
        e.preventDefault();
        var numb = this.className.replace('question', '');
        $('[id^=answer]').hide();
        $('#answer' + numb).show();
        var plinks = $('div.plink a');
        plinks.removeClass('active');
        var alink = $(this);
        alink.addClass('active');
        $('#answer' + numb).show();

    });

});

主要是,这个脚本做了我想要它做的事情。单击问题1时,将显示答案1。当我单击问题2时,会显示答案2,依此类推。

我的问题是,如果我连续两次点击任何一个问题,答案就会消失,直到我点击另一个问题。所以它是这样的:

  1. 点击Q1
  2. A1出现
  3. 再次点击Q1
  4. A1消失
  5. 再次点击Q1
  6. A1仍然不见了
  7. 点击Q2
  8. A2出现
  9. 点击Q1
  10. A1出现
  11. 如果多次点击该问题,任何人都知道我如何能够得到答案?

1 个答案:

答案 0 :(得分:0)

这段代码存在问题:

var numb = this.className.replace('question', '');
当点击的问题已经是活动问题时,

this.className的值为“问题1有效”,因此numb将获得值“1有效”

有两种方法可以解决这个问题:

  1. 在计算numb
  2. 的值之前删除“active”类
  3. 使用正则表达式: var myRe = /question(\d)/g; var myArray = myRe.exec(this.className); var numb = myArray[1];