我有这个Javascript,它只是无法正常工作.我已经检查了JSlint但是说一切都有效.仍然无法正常工作.javascript不在HTML中,但链接在
注意:我正在使用本地服务器,所以即时页面加载.
function changeVisibility() { var a = document.getElementById('invisible'); a.style.display = 'block'; } var changed = document.getElementById('click1'); changed.onchange = changeVisibility;
这是相应的HTML
那么我会点击输入,选择一个文件并批准.然后onchange事件触发器和我的不可见div的样式设置为阻止.
问题是,我一直收到这个错误:
"changed is null:changed.onchange = changeVisibility;"
我不明白,我真的没有得到我在这里俯瞰的东西.
编辑:问题回答,谢谢你Mercutio的帮助和其他人当然.最终代码:
function loadEvents() { var changed = document.getElementById('click1'); var a = document.getElementById('invisible'); document.getElementById('addField').onclick = addFileInput; changed.onchange = function() { a.style.display = 'block'; } } if (document.getElementById) window.onload = loadEvents;
这是相应的HTML:
另外,感谢JSbin的链接,不知道,看起来很漂亮.
这听起来好像在引用它时DOM对象不存在.也许在文档完全加载后将代码更改为执行(或将javascript放在页面底部)
注意:我正在使用本地服务器,所以即时页面加载.
这不是问题 - 文档的组成部分按顺序加载.加载它们的速度并不重要,有些事情发生在别人面前:D
我现在唯一想做的就是从...中删除Javascript链接
在那里放置一个id,在你的函数内部执行以下操作:
document.getElementById('addField').onclick = addFileInput;
或者,因为您已经将div作为变量'a':
a.firstChild.onclick = addFileInput;
但这显然会给你一个无效的锚标记.最佳实践建议您应该提供一种不使用javascript的方法,并使用javascript方法覆盖该功能(如果可用).