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 回答