...
var otext=document.getElementById("ediv").firstChild;
otext.onclick=function(){alert('text');};
...
<div id="ediv">Click Me</div>
例如上面代码,单击文本并不会发生onclick事件,我在IE、Firefox、Opera试过都是这样。网上都说可以触发,但却没有实际例子,大家有代码例子吗?
试试下面这个例子,也许是你想要的。
<html>
<head>
<title>无标题页</title>
<script type="text/javascript">
window.onload=function(){
document.getElementById("ediv").onclick=function(){ alert("You Clicked me!!");};
}
</script>
</head>
<body>
<div id="ediv" style="width:200px;height:200px;cursor:pointer;background-color:Red;">Click Me</div>
</body>
</html>
你说的文本节点指的是"Click Me",但是你给的问题是div的事件,文本节点只是文本,没有什么事件,要依靠类似于<b> </b>, <font></font>,<p></P>等标签来设置其样式。
另外注意上面的window.onload();当页面加载完毕后执行该方法。那段js的执行必须在名称为"ediv"的标签加载完后才正确。所以“document.getElementById("ediv").onclick=function(){ alert("You Clicked me!!");};”也可以放到名称为"ediv"的div标签后面而不需要使用window.onload()。
用Jquery实现,先在<head>中引入 <script type="text/javascript" src="../../Scripts/jquery-1.3.2.js"></script>
接下来代码如下::
<script type="text/javascript">
$(document).ready(function(){
$("#ediv").click(function(){
alert("Click Me");
});
})
</script>
<div id="ediv">Click Me</div>
重新添加一个属性,如果没有的话。
window.onload = function(){
var otext=document.getElementById("ediv").firstChild;
otext.onclick=function(){alert('text');}
}
<input type="button" id="ediv"/>