JS (javascript)中getID后,onclick触发事件无效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS (javascript)中getID后,onclick触发事件无效相关的知识,希望对你有一定的参考价值。
代码很简单:
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" >
<script type="text/javascript">
var a=document.getElementById('button')
a.onclick=function()
alert("123");
</script>
</head>
<input type="button" id="button" value="点我">
如果我用行内式JS 在input中直接添加onclick="xx()" 就可以正常触发函数,但是我换这种写法后就触发不了了,点击没反应!请会的人普及下知识,我这哪错了
<input type="button" id="button" value="点我">
<script type="text/javascript">
var a=document.getElementById('button')
a.onclick=function()
alert("123");
</script>追问
JS肯定要写在head里面啊,问题不在这吧,而且我按你说的放到后面也根本无效啊,JS不就是写在head或body里面么,一般都是head
追答因为你的代码中,页面先加载的script,后加载的input
当页面加载,运行到script时,因为你的input还没画出来,就会出现找不到的错误
但如果使用了"onclick=xx()"、或者window.onload、或者把Script写到后面
就可以让script找到你的input元素
如果写到head里,一般都是加上
window.onload=function()你的JS代码;
或者
jQuery(function()你的JS代码);
或者
直接写你的JS代码,然后等待事件调用。
<html>
<head>
<meta charset=UTF-8>
<title>YuGiOh</title>
<style type="text/css">
</style>
<script type="text/javascript">
onload = function ()
var a = document.getElementById ('button')
a.onclick = function ()
alert ("123");
</script>
</head>
<body>
<input type="button" id="button" value="点我">
</body>
</html>本回答被提问者采纳
unigui结合JS方法记录
在js中界面上所有组件都当成html里来控制 1、控制按钮事件 document.getElementById(MainForm.UniButton4.getId()).click(); 这个方法让JS与UNI交互提供太大的帮助了 js code如下 document.getElementById(MainForm.UniButton4.getId()).click(); //模拟按钮事件 extjs code如下 MainForm.UniButton4.fireEvent("click", MainForm.UniButton4); //模拟按钮事件 在delphi里 UniSession.AddJS(‘MainForm.UniButton4.fireEvent("click", MainForm.UniButton4);‘); 2、给edit赋值 MainForm.opction_edit.setValue("1"); 3.客户端摄像头调用 http://www.oschina.net/p/flash-avatar-upload 4.编码问题 编码的问题,以前我碰到过类似的就这么解决的,任何工具都可以,但只要能改变编码就行 5.JS用多以后会出现些异常情况,引用没效,于是在主界面加一个UniHTMLFrame,将<script type="text/javascript" src="Dialog.js"></script>放入HTML中解决问题。 6. str:=‘function zOpenD(){‘+ ‘ var diag = new Dialog("Diag1");‘+ ‘ diag.Width = ‘+width+‘;‘+ ‘ diag.Height = ‘+height+‘; ‘+ ‘ diag.ShowButtonRow=false;‘+ ‘ diag.Title = "‘+title+‘"; ‘ + urlhtml+ ‘ diag.ShowMessageRow = ‘+ShowMessageRow+‘;‘+ ‘ diag.MessageTitle = "‘+MessageTitle+‘";‘+ ‘ diag.Message = "‘+sm+‘";‘+ ‘ diag.OKEvent = function(){};//点击确定后调用的方法 ‘+ ‘ diag.show();} ‘+ ‘ zOpenD();‘; UniSession.AddJS(str); 这样会出错,不要把注释放到里头 7.jquery.min.js与其他js脚本的冲突 那是因为你的JS代码有 $ 符号,跟JQ冲突。解决办法可以在JQ代码前加入 var jq=jQuery.noConflict(); 然后将JQ代码中的$都换成jq就行。如例: <script type="text/javascript"> var jq=jQuery.noConflict(); jq(function(){alert ("That‘s Good");}) </script> --------------------- 作者:yeeonefx 来源:CSDN 原文:https://blog.csdn.net/yeeonefx/article/details/8557600 版权声明:本文为博主原创文章,转载请附上博文链接!
以上是关于JS (javascript)中getID后,onclick触发事件无效的主要内容,如果未能解决你的问题,请参考以下文章
ruby on rails 6 - 在javascript中动态引用图像
Bootstrap (5) Javascript 在 package.json 修订后不起作用 (Ruby on Rails 6)