0

I have a piece of code below where it contains buttons A-Z. Each button can be turned on and turned off.

<?php
    $a = range("A","Z");
?>

<?php
        $i = 1;
        foreach($a as $key => $val){
            if($i%7 == 1) echo"<tr><td>";
            echo"<input type=\"button\" onclick=\"btnclick(this);\" value=\"$val\" id=\"answer".$val."\" name=\"answer".$val."Name\" class=\"answerBtns answers answerBtnsOff\">";      
            if($i%7 == 0) echo"</td></tr>";
            $i++;
        }
    ?>

Below is the code where I am trying to turn on and off the correct buttons but the problem is that it is not turning off the buttons.

var answers = '#answer'+btn;
$('.answers.answerBtnsOn').find('answerBtnsOn').addClass('answerBtnsOff');

Now if I change the last line of code to code below:

$('.answerBtnsOn').find('answerBtnsOn').addClass('answerBtnsOff');

then it works but the problem is that all my buttons have the class ".answerBtnsOn", I only want the buttons within the "answers" variable to be turned off.

So I changed the code to this:

$('.answerBtnsOn', answers).addClass('answerBtnsOff');

But it doesn't turn off any buttons, why won't it turn off any buttons which are turned on?

4

2 に答える 2

2

Try this

$('.answers.answerBtnsOn').removeClass('answerBtnsOn').addClass('answerBtnsOff');

or

$('.answers').filter('.answerBtnsOn').removeClass('answerBtnsOn').addClass('answerBtnsOff');

In your code you're never removing the on class just adding the off on top of it

于 2012-07-13T23:47:18.150 に答える
1

試してみてくださいtoggleClass()。クラスを変更したり、前のクラスを削除したりするのではなく、単にクラスを追加しているようです。

完全なドキュメントについては、jQuery Webサイトを参照してください:http://api.jquery.com/toggleClass/

述べたように:

$('#foo').toggleClass(className, addOrRemove);

と同等です:

if (addOrRemove) {
  $('#foo').addClass(className);
} else {
  $('#foo').removeClass(className);
}

したがって、コード内に次のように記述します。

$('.answerBtnsOn', answers).toggleClass('answerBtnsOn');

もちろん、ボタンのオフ状態が、ボタンが押されていないデフォルトの状態と異なる場合を除いて、ボタンにとっては非常に奇妙です。どちらの方法でも、この関数を使用すると、両方のクラスを非常に簡単に切り替えることができます。

于 2012-07-13T23:47:57.323 に答える