javascript:如何在span中触发单击事件,有点难,高手请进

我想在单击‘我的显示信息’文本的时候触发movediv()事件,怎么有错误?
但是当我直接写在onclick后面就没有问题了,这是怎么回事?
请高手指教

<html>
<head>
<script>
function display()
{
document.write("<table name='tabframe'align='center' style='text-align:center;background-color:green;'>");
document.write("<tr><td><input type=button style='color:red;width:200;height:100;border:1px solid #111111' value='div留言' onclick=document.getElementById('divframe').style.display='block'></td></tr></table>");
document.write("<div id='divframe' style='width:500px;height:100px;display:none;position:absolute;background-color:#dddddd;top:200;left:200;'>");
document.write("<table align='center' border=1 style='text-align:center;border:1px solid #aaaaaa '>");
document.write("<tr><td style='text-align:center;'><span onclick=this.movediv();>我的显示信息</span></td></tr>");
document.write("<tr><td>文字</td></tr>");
document.write("<tr><td><span style='cursor:hand;' onclick=document.getElementById('divframe').style.display='none'>[关闭]</td></tr>");
document.write("</table>");
document.write("</div>");
}
function movediv()
{
alert('aa');
}
</script>
</head>
<body onload="display()">
</body>
</html>
onclick='movediv()' 也不能成功

moxiaoxing请把代码贴出来,onclick='movediv();'不通过

首先你查看一下js错误,movediv()未定义,然后查看一下源文件就明白是怎么回事了,document.write将重新生成HTML源码,以前的代码已经丢失,所以我给你改写了一下;
还有"this.movediv()"的"this"是错误的,去掉;
修改后的代码如下,希望对你有用:

<html>
<head>
<script>
function display()
{
var ss="<table name='tabframe'align='center' style='text-align:center;background-color:green;'>";
ss+="<tr><td><input type=button style='color:red;width:200;height:100;border:1px solid #111111' value='div留言' onclick=document.getElementById('divframe').style.display='block'></td></tr></table>";
ss+="<div id='divframe' style='width:500px;height:100px;display:none;position:absolute;background-color:#dddddd;top:200;left:200;'>";
ss+="<table align='center' border=1 style='text-align:center;border:1px solid #aaaaaa '>";
ss+="<tr><td style='text-align:center;'><span onclick=movediv();>我的显示信息</span></td></tr>";
ss+="<tr><td>文字</td></tr>";
ss+="<tr><td><span style='cursor:hand;' onclick=document.getElementById('divframe').style.display='none'>[关闭]</td></tr>";
ss+="</table>";
ss+="</div>";
window.document.body.innerHTML+=ss;
/*
document.write("<table name='tabframe'align='center' style='text-align:center;background-color:green;'>");
document.write("<tr><td><input type=button style='color:red;width:200;height:100;border:1px solid #111111' value='div留言' onclick=document.getElementById('divframe').style.display='block'></td></tr></table>");
document.write("<div id='divframe' style='width:500px;height:100px;display:none;position:absolute;background-color:#dddddd;top:200;left:200;'>");
document.write("<table align='center' border=1 style='text-align:center;border:1px solid #aaaaaa '>");
document.write("<tr><td style='text-align:center;'><span onclick=this.movediv();>我的显示信息</span></td></tr>");
document.write("<tr><td>文字</td></tr>");
document.write("<tr><td><span style='cursor:hand;' onclick=document.getElementById('divframe').style.display='none'>[关闭]</td></tr>");
document.write("</table>");
document.write("</div>");
*/
}
function movediv()
{
alert('aa');
}
</script>
</head>
<body onload="display()">

</body>
</html>
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-06-28
首先你查看一下js错误,movediv()未定义,然后查看一下源文件就明白是怎么回事了,document.write将重新生成HTML源码,以前的代码已经丢失,所以我给你改写了一下;还有“this.movediv()“的“this“是错误的,去掉;修改后的代码如下,希望对你有用:amp;lt;htmlamp;gt;nbsp;amp;lt;headamp;gt;nbsp;amp;lt;scriptamp;gt;nbsp;functionnbsp;display()nbsp;{nbsp;varnbsp;ss=“amp;lt;tablenbsp;name=‘tabframe‘align=‘center‘nbsp;style=‘text-align:center;background-color:green;‘amp;gt;“;ss+=“amp;lt;tramp;gt;amp;lt;tdamp;gt;amp;lt;inputnbsp;type=buttonnbsp;style=‘color:red;width:200;height:100;border:1pxnbsp;solidnbsp;#111111‘nbsp;value=‘div留言‘nbsp;onclick=document.getElementById(‘divframe‘).style.display=‘block‘amp;gt;amp;lt;/tdamp;gt;amp;lt;/tramp;gt;amp;lt;/tableamp;gt;“;ss+=“amp;lt;divnbsp;id=‘divframe‘nbsp;style=‘width:500px;height:100px;display:none;position:absolute;background-color:#dddddd;top:200;left:200;‘amp;gt;“;ss+=“amp;lt;tablenbsp;align=‘center‘nbsp;border=1nbsp;style=‘text-align:center;border:1pxnbsp;solidnbsp;#aaaaaanbsp;‘amp;gt;“;ss+=“amp;lt;tramp;gt;amp;lt;tdnbsp;style=‘text-align:center;‘amp;gt;amp;lt;spannbsp;onclick=movediv();amp;gt;我的显示信息amp;lt;/spanamp;gt;amp;lt;/tdamp;gt;amp;lt;/tramp;gt;“;ss+=“amp;lt;tramp;gt;amp;lt;tdamp;gt;文字amp;lt;/tdamp;gt;amp;lt;/tramp;gt;“;ss+=“amp;lt;tramp;gt;amp;lt;tdamp;gt;amp;lt;spannbsp;style=‘cursor:hand;‘nbsp;onclick=document.getElementById(‘divframe‘).style.display=‘none‘amp;gt;[关闭]amp;lt;/tdamp;gt;amp;lt;/tramp;gt;“;ss+=“amp;lt;/tableamp;gt;“;ss+=“amp;lt;/divamp;gt;“;window.document.body.innerHTML+=ss;/*document.write(“amp;lt;tablenbsp;name=‘tabframe‘align=‘center‘nbsp;style=‘text-align:center;background-color:green;‘amp;gt;“);nbsp;document.write(“amp;lt;tramp;gt;amp;lt;tdamp;gt;amp;lt;inputnbsp;type=buttonnbsp;style=‘color:red;width:200;height:100;border:1pxnbsp;solidnbsp;#111111‘nbsp;value=‘div留言‘nbsp;onclick=document.getElementById(‘divframe‘).style.display=‘block‘amp;gt;amp;lt;/tdamp;gt;amp;lt;/tramp;gt;amp;lt;/tableamp;gt;“);nbsp;document.write(“amp;lt;divnbsp;id=‘divframe‘nbsp;style=‘width:500px;height:100px;display:none;position:absolute;background-color:#dddddd;top:200;left:200;‘amp;gt;“);nbsp;document.write(“amp;lt;tablenbsp;align=‘center‘nbsp;border=1nbsp;style=‘text-align:center;border:1pxnbsp;soli
第2个回答  2008-05-14
<span onclick='movediv();'>
是可以的,我已经测试通过.
这里提醒你一下,要知道this的意思.
你用this 则指向了span本身,span本身没有movediv的方法,自然会报错.所以直接用movediv调用函数即可.
第3个回答  2008-05-14
<span onclick=movediv()>我的显示信息</span>

<span onclick='movediv()'>我的显示信息</span>

就OK了.不用写成this.movediv();
相似回答