javascript - 使用代码而不使用窗口 onload 事件
问题描述
我想使用下面的代码向onClick
按钮添加事件。
document.getElementById("first").addEventListener("click", changeHeight);
function changeHeight() {
var panelH = document.getElementById('second');
if (panelH.style.height == '')
panelH.style.height = '160px';
else
panelH.style.height = '';
}
但仅在包裹在其中时才有效:
window.onload = function() {
}
在不使用事件的情况下,我应该在其他方面进行哪些更改才能使用该代码window.onload
?
解决方案
它工作正常 - 尝试运行下面的代码片段。我猜你已经把你的脚本标签放在head
而不是放在body
. 因此脚本在有一个元素之前运行id=first
。因此,如果是这种情况,那么只需将您的脚本标签移动到正文的底部(这是人们倾向于放置脚本标签的地方)。
document.getElementById("first").addEventListener("click", changeHeight);
function changeHeight() {
var panelH = document.getElementById('second');
if (panelH.style.height == '')
panelH.style.height = '160px'
else
panelH.style.height = ''
}
#second {
background-color: teal;
}
<button type="button" id="first">Change height</button>
<div id="second">Test</div>
推荐阅读
- java - Java Kafka Consumer在内存中存储状态?
- r - 如何在不使用 for 循环的情况下将向量更改为相应的名称
- ios - 如何使用 Xcode 在 iOS 上调试 Kotlin
- python - 使用 csv.to_csv 写入 csv 文件时的特殊字符
- javascript - 我的 CSS 和 JS 外部文件在我的项目中不起作用
- javascript - 在浏览器开发人员检查工具获得焦点之前无法访问 Timymce
- excel - Excel,合并相似的数据,但有一些缺失/添加的行
- javascript - Django request.POST.get 不适用于 Vanilla JavaScript 请求
- python - Pybind11 keep-alive 不会让对象保持活动状态
- flutter - 插件 admob_flutter 使用了已弃用的 Android 嵌入版本