0

私の説明が言うように。

フィドル

<div id="step2" class="question">
    <p>Step two:</p>
    <div id="resultOne" class="script">
        <p>"Test Yes!</p>
    </div>
    <div id="resultTwo" class="script">
        <p>"Test No"</p>
    </div>
</div>

上記の div はボタンのクリックに応答しません。対応する JS 関数が呼び出されていないようです。

おそらくマイナーな構文エラーであることはわかっていますが、一生見つけることができません。

お手伝いありがとう。

4

2 に答える 2

1

フィドルで動作させることができませんでした.nextStep機能が利用できないとのことでした. しかし、次の nextStep の定義は機能するはずです。

function nextStep(divShow, divHide, divReveal) {
    var show = document.getElementById(divShow);
    var hide = document.getElementById(divHide);
    var reveal = document.getElementById(divReveal);
    show.style.display = "inline-block";
    hide.style.display = "none";
    if (reveal.style.display == "none") 
        reveal.style.display = "block";
}

ボタンを次のように変更します。

<button type="button" onclick="javascript:nextStep('resultOne', 'resultTwo', 'step2')">Yes</button>
<button type="button" onclick="javascript:nextStep('resultTwo', 'resultOne', 'step2')">No</button>

" が getElementById 呼び出しのパラメーターを回避していることに注意してください。取得しようとしていたのは、変数の内容によって参照される要素ではなく、divShow という名前の要素でした。

于 2013-03-10T19:06:01.523 に答える
0

jsfiddle は、ウィンドウの読み込み時に実行される匿名関数で JavaScript をラップするため、関数が呼び出されないようです。これは、宣言した関数のスコープがその関数内のみであることを意味します。

代わりに、グローバル関数としてアタッチしてみてください

window.nextStep = function (divShow, divHide, divReveal) {
    var show = document.getElementById(divShow);
    var hide = document.getElementById(divHide);
    var reveal = document.getElementById(divReveal);
    show.style.display = "inline-block";
    hide.style.display = "none";
    if (reveal.style.display == "none") 
        reveal.style.display = "block";
}
于 2013-03-10T19:06:07.700 に答える