在锚标记的onclick事件上未定义Javascript函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在锚标记的onclick事件上未定义Javascript函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1450字,纯文字阅读大概需要3分钟。
内容图文
![在锚标记的onclick事件上未定义Javascript函数](/upload/InfoBanner/zyjiaocheng/759/ddd2810aaa164f5a9ae872acedb7e595.jpg)
我无法在锚标记的onclick事件中访问javascript函数.
在某些情况下,它是有效的,在某些情况下,不是.
任何人都可以告诉它为什么会这样.
HTML代码 –
<a href='#' class="btn waves-effect waves-light bg-blue" id="startDeviceScan" onclick="call286Dart123('CollectSysInfo', '3c6c3e33bb65e8331bf4c91c0670492e');" >start device scan </a>
Javascript功能:
function call286Dart123(a,b) {
console.log(a + "\t" + b);
}
小提琴链接
解决方法:
编辑由于@Dellirium在评论中指出,我修改了我的答案以反映这里的真实问题.但是,解决方案仍然有效.
问题是JSFiddle默认情况下使JavaScript在文档加载上运行.这意味着JS在HTML之后加载,因此在HTML中初始化onclick事件时不会定义它.
封闭似乎是一个问题.如果你在JSFiddle中将“加载类型”设置为“onload”,这就是它在内部的作用(你可以检查开发者控制台):
<script type="text/javascript">
//<![CDATA[
window.onload=function(){
function call286Dart123(a,b) {
console.log(a + "\t" + b);
}
}
//]]>
</script>
这意味着它被包装在onload事件的匿名事件处理程序中.由于变量(和函数)作用域受JavaScript中的函数约束,因此它们不适用于全局作用域
解决方案:要解决此问题,请在“JavaScript”菜单下将“加载类型”更改为“无包装& t; head>”.这很容易=).
请参见this JSFiddle fork作为工作示例.
换句话说,这只是将其更改为(再次,您可以通过访问我的JSFiddle上的开发人员控制台来验证这一点):
<script type="text/javascript">
//<![CDATA[
function call286Dart123(a,b) {
console.log(a + "\t" + b);
}
//]]>
</script>
其中,cal286Darkt123将在全局范围内定义(在任何其他函数之外).
有关闭合的更多信息,请查看MDN Docs.
内容总结
以上是互联网集市为您收集整理的在锚标记的onclick事件上未定义Javascript函数全部内容,希望文章能够帮你解决在锚标记的onclick事件上未定义Javascript函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。