0

私はjquery selectboxを使用しています.最初の質問を取得して、一連の質問の最後に表示されるリンクを決定しようとしています. ユーザーが最初の回答を選択すると最初のリンクに移動し、回答 2 を選択すると 2 番目のリンクに移動します。

<div class="step question">
    <h2>Select An Answer</h2>
    <div id="q1_one" class="button button_green next">Answer 1</div>
    <div id="q1_two" class="button button_red next">Answer 2</div>
    <div id="q1_three" class="button button_red next">Answer 3</div>
</div>

そして、ここに私が表示しようとしている一連の回答があります。現在、質問1でどの回答が選択されていても、それらはすべて表示されます。選択ごとに1つの正しい回答を表示しようとしています:

<div id="if_one">
    <a href="http://websitelinkhere.com/1" class="button_primary agree">If Question 1 = Answer 1</a>
</div>
<div id="if_two">
    <a href="http://websitelinkhere.com/2" class="button_primary agree">If Question 1 = Answer 2</a>
</div>
<div id="if_three">
    <a href="http://websitelinkhere.com/3" class="button_primary agree">If Question 1 = Answer 3</a>
</div>

これはJSFiddleにあります

4

1 に答える 1

0

コードを掘り下げた後、問題は、回答を保存/表示していないことです。すべてを表示しているだけです。これが私がそれをハッキングした方法です。より良い戦略を考え出すことをお勧めします。

フルフィドル: http://jsfiddle.net/RqvEX/

616 行あたりに、回答用のグローバル ストレージを追加し、回答を記録しました。

document.storedAnswers = [];


$('.next, .agree').click(function () {

    next = false;
    if ($(this).hasClass('agree')) {
        button_type = 'agree';
    } else {
        button_type = 'next';
        document.storedAnswers.push(this.id);
    }
    //.... rest of code
}

最後に、「検証」した後、タイムアウトを変更しました。

setTimeout(function () {

    jQuery('.verify_container .loader').hide();
    //This line showed all answers... we want to be more selective.
    //jQuery('.verify_container .button_primary').css('display', 'block');
    var answerToShow = '';
    switch(document.storedAnswers[0]) {
        case 'q1_one': {
            answerToShow = 'if_one';
            break;
        }
        case 'q1_two': {
            answerToShow = 'if_two';
            break;
        }
        default: {
            answerToShow = 'if_three';
            break;
        }           
    }

    if (answerToShow.length > 0) {
        $('#' + answerToShow + ' .button_primary').css('display', 'block');
    }

}, 1000);
于 2013-09-27T14:45:42.403 に答える