-1

我有 4 个答案按钮,它们会根据答案是否正确(“showDiv01”/“showDiv02”)触发打勾或交叉显示,我想在单击其中任何一个按钮后禁用所有按钮,所以到目前为止,我只能禁用使用“onClick=this.disabled = 'true';”单击的按钮。

<button id="none" onClick="showDiv01(); this.disabled = 'true';">Almond White</button><br>
<button id="score" onClick="showDiv02(); this.disabled = 'true';">Raspberry Diva</button<br>
<button id="none" onClick="showDiv01(); this.disabled = 'true';">Melon Sorbet</button><br>
<button id="none" onClick="showDiv01(); this.disabled = 'true';">Gentle Lavender</button><br>

有什么解决办法吗?

4

2 回答 2

0

您还showDiv01();可以在单​​击时调用函数。放在那里代码来禁用通过 id 找到它们的按钮。

此外,我认为您不能为“无”之类的不同按钮设置相同的 ID,我还会考虑将答案保留在按钮 ID 以外的其他位置。我会将一些参数传递给showDiv01();类似 showAnswerDiv(1);or 的函数showAnswerDiv(2);

这样,您可以根据参数采取行动,这比为有效或无效答案创建函数并将其固定到按钮要好得多。

于 2013-10-17T13:17:28.067 回答
0

我建议为您的按钮添加一个通用类(在本例中,假设您btnClass是您的类),此外,您可以为每个按钮单击使用相同的函数,无需为执行相同类型行为的按钮创建唯一函数:

function showDiv(el) {
    //"el" should be "this" passed in to the func
    var buttons = document.getElementsByClassName("btnClass");
    for (var i = 0; i < buttons.length; i++) {
        buttons[i].disabled = true;
    }
}

<button id="none" onClick="showDiv(this)"></button>

传入后,您可以通过函数中的参数this直接访问被单击的元素。el所以el.id会产生被点击元素的ID。

于 2013-10-17T13:16:29.093 回答