我在尽我所能学习不显眼的JavaScript。下面的代码试图改变我在HTML标记中调用的getArrays函数的现有实践。这是我能工作的唯一版本。尽管它很好,但我觉得可能会有一些不必要的部分,并且不完全理解为什么我需要最后一行代码(对于addEventListener来说,这是一种新的东西)。我正在使用Mozilla DOM参考示例,并知道如何在jQuery中执行此操作。谢谢!JavaScript单击事件 - 为什么我需要两个addEventListeners?
的JavaScript:
<script>
function getArrays() {
var ddlValArray = new Array();
var ddlTextArray = new Array();
var ddl = document.getElementById("ddlFlavors");
for (i=0; i<ddl.options.length; i++) {
ddlValArray[i] = ddl.options[i].value;
ddlTextArray[i] = ddl.options[i].text;
alert(ddlValArray[i] + ' ' + ddlTextArray[i]);
}
}
function showArrays() {
var link = document.getElementById("clickHandler");
link.addEventListener("click", getArrays, false);
}
document.addEventListener("DOMContentLoaded", showArrays, false);
</script>
HTML
Select Flavor:
<select id='ddlFlavors'>
<option value="1">Vanilla</option>
<option value="2">Chocolate</option>
<option value="3">Strawberry</option>
<option value="4">Neopolitan</option>
</select>
<br/><br/>
<a id="clickHandler" href="#">Show Flavors</a>
虽然这个答案提供了一种OP方法的替代方案,但它并不真正回答问题_为什么我需要'addEventListener'?_当然,在这种情况下,事件监听器没有_real_需要,但它们非常强大,并且在当今世界(动态添加内容的ajax)绝对不可或缺 –
呃,它确实,你只需要在行之间读一点更多。我没有描绘出发生了什么的整个画面,但我暗示了它。另外问题是“为什么我需要两个”,一个合理的答案是“你不”。 – rlemon
Gotcha。这就说得通了。谢谢! –