菜鸟初问:关于onclick()事件

wandering_guy 2003-07-19 05:16:35
我参照书上的例子,左一个简单的树型结构
原来的onclick事件是这样的:
<body onclick = "nodeChange();">
然后紧接着就是定义的节点项
这样是可以正常实现的

但是我在<body onclick = "nodeChange();">
后面嵌套了两个table,然后再点击table内的节点,就怎么也触发不了这个事件了,
是怎么回事?该怎样解决呢
...全文
106 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wandering_guy 2003-07-21
  • 打赏
  • 举报
回复
colee(长夜多浪漫) ,能稍微详细点说一下,怎么用document.all(subId,i)解决呢??
谢谢
colee 2003-07-20
  • 打赏
  • 举报
回复
有了循环语句: for(int i=0;i<model.getRowCount();i++){
for(int j=0;j<model.getColumnCount();j++){

ID值不唯一 (id= subNode1 ),需要用类似document.all(subId,i)才有效
形印声传 2003-07-19
  • 打赏
  • 举报
回复
晕,这个里有嵌套jsp语句啊~~~
wandering_guy 2003-07-19
  • 打赏
  • 举报
回复
这个就怎么也无法触发onclick()事件


<html>
<head >
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" type="text/css" href="../script/font.css">
</head>

<%@ page import="com.fin.model.* " ,java.sql.*%>

<jsp:useBean id="fin_TestBean" scope="page" class="com.fin.bean.FinTestBean" />
<jsp:setProperty name="fin_TestBean" property="*" />

<%
String sql = "select JJXLPARTNAME from hajj.jjxljj ";
myDataModel model = fin_TestBean.runTest(sql.toString());
%>

<script language = "javascript" type = "text/javascript">
<!--
function nodeChange(){
var src;
var subId;
src = window.event.srcElement;
if (src.className == "menu"){
subId = "sub" + src.id;
if (document.all(subId).style.display == "none"){
document.all(subId).style.display ="";
}else{
document.all(subId).style.display = "none";
}

}
}
//-->
</script>

<body leftmargin = "150" onClick="nodeChange();">
<div align="center" >
<table >
<tr>
<td width = "320" >
<table align = "right" width="126" border="1" cellpadding="0" cellspacing="0" bordercolor="#999999" >
<tr>
<td colspan="2" bgcolor="#CCCCCC" align="center" height = "21"> <font size="-1" > part1 </font> </td>
</tr>
<tr >
<td width="75" height = "20" align="center" > <font size="-1" > part2 </font></td>
<td width="45" height = "20" align="center"> <font size="-1" > part3 </font></td>
</tr>

<tr ><td colspan = "2"" >

<%
for(int i=0;i<model.getRowCount();i++){
for(int j=0;j<model.getColumnCount();j++){
String mainNode=model.getValueAt(i,j).toString();
%>
<span ID = "Node1" class = "menu" > +<%=model.getValueAt(i,j)%></span><br>
<%
String subSql = "select JJXLTYPE from JJXLJJ where JJXLPARTNAME = "+mainNode;
myDataModel subModel = fin_TestBean.runTest(subSql.toString());
%>
<div id= subNode1 style = "display:none">
<div class = "indent">
<a href = "http://some.com" >fasfas</a><br>
</div></div>
<%

}

}
%>
</td></tr>
</table>

</td>
</tr>
</table>


<body>
</html>
wandering_guy 2003-07-19
  • 打赏
  • 举报
回复
<html>
<head >
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" type="text/css" href="../script/font.css">
</head>

<script language = "javascript" type = "text/javascript">
<!--
function nodeChange(){
var src;
var subId;
src = window.event.srcElement;
if (src.className == "menu"){
subId = "sub" + src.id;
if (document.all(subId).style.display == "none"){
document.all(subId).style.display ="";
}else{
document.all(subId).style.display = "none";
}

}
}
//-->

</script>

<body onClick="nodeChange();">
<span id = "node1" class = "menu">+mainmenu</span>
<div id= subnode1 style = "display:none">
<div class="indent">
<a href="http://some.com" >submenu</a><br>

</div>
</div>

</body>
</html>

这个是正确的可以正常执行的
inanition 2003-07-19
  • 打赏
  • 举报
回复
嗯,要看看代码才知道。
jsidiot 2003-07-19
  • 打赏
  • 举报
回复
代码贴出来看看呢

87,987

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧