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

JavaScript013

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

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

还有"this.movediv()"的"this"是错误的,去掉;

修改后的代码如下,希望对你有用:

<html>

<head>

<script>

function display()

{

var ss="<table name='tabframe'align='center' style='text-align:centerbackground-color:green'>"

ss+="<tr><td><input type=button style='color:redwidth:200height:100border:1px solid #111111' value='div留言' onclick=document.getElementById('divframe').style.display='block'></td></tr></table>"

ss+="<div id='divframe' style='width:500pxheight:100pxdisplay:noneposition:absolutebackground-color:#ddddddtop:200left:200'>"

ss+="<table align='center' border=1 style='text-align:centerborder: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:centerbackground-color:green'>")

document.write("<tr><td><input type=button style='color:redwidth:200height:100border:1px solid #111111' value='div留言' onclick=document.getElementById('divframe').style.display='block'></td></tr></table>")

document.write("<div id='divframe' style='width:500pxheight:100pxdisplay:noneposition:absolutebackground-color:#ddddddtop:200left:200'>")

document.write("<table align='center' border=1 style='text-align:centerborder: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>

// 以 发布 为基准

var spans = document.querySelectorAll("span")

for(var i =0i<spans.lengthi++){

    var si = spans[i]

    if(si.innerHTML == "发布"){

        si.onclick = function(){

            // TODO

        }

    }

}

// 以 class=publish 为基准

var spans = document.querySelectorAll("span.publish")

for(var i = 0i<spans.lengthi++){

    spans[i].onclick=function(){

        // TODO

    }

}

你可以结合 onselectstart和onmouseup这两个事件监听鼠标动作 。

致于插入span,可以使用:

var o = event.target || event.srcElement

来获得选中的文本所在的位置入的DOM,在这个DOM后面添加span标签就可以了。

你可以借助脚本框架来实现,例如JSer, jQuery等 都可以。