在JavaScript中同时执行两个动作

时间:2019-01-12 20:23:49

标签: javascript html

我在显示包含选择选项列表的模式框时遇到问题,该模式框具有基于列表项的引用点击而启用的选项。问题在于该框仅在第二次单击时才打开,而没有一次单击。以下是我用来获取点击点击并启用禁用选项的元素(我不使用event.target的原因,因为我想要特定的元素,而不仅仅是文档上的任何列表标签):

function getli() {
    var clicks = document.getElementsByTagName("li");
    var clicksCount = clicks.length;
    for (var i = 0; i <= clicksCount; i += 1) {
        if (typeof clicks[i] !== 'undefined') {
            clicks[i].onclick = function(e) {
                var x = this.id;
                document.getElementById("id01").style.display="block";
                document.getElementById("type").options[x].disabled = false;
            };
        }
    }
}

HTML:

<ul>
<li id="Choose an Option</li>
<li id="text" onclick="getli();">Text</li>
<li id="textarea" onclick="getli();">Text Area</li>
<li id="hidden" onclick="getli();">Hidden</li>
</ul>

禁用的选项:

  <select name="type" id="type">
    <option>Choose</option>
    <option id="text" disabled value="text">Text</option>
    <option id="textarea" disabled value="textarea">Text Area</option>
    <option id="hidden" disabled value="hidden">Hidden</option>
    </select>

我尝试过:

function modal() {
    document.getElementById("id01").style.display="block";
    getli();
}

function twobirds() {
    modal();
    getli();
}

但是当两者都打开模式时,由于所有项目均保持禁用状态,因此列表上似乎没有任何操作。

请帮助我直率。请不要jQuery!

1 个答案:

答案 0 :(得分:0)

似乎您在html中设置为onclick处理程序的函数仅设置了另一个处理程序,该处理程序将选项设置为显示且未禁用。

很抱歉,因为现在不在电话上在此处编写代码。稍后再返回这里...