点击时不会显示隐藏的div - Javascript,没有Jquery

时间:2013-03-10 18:59:55

标签: javascript html button hide

就像我的描述一样。

Fiddle

<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函数。

我知道这可能是一个小的语法错误,但我找不到它的生命。

感谢您的帮助。

2 个答案:

答案 0 :(得分: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的元素,而不是变量内容所引用的元素。

答案 1 :(得分: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";
}