1、说明:第一部分 a.asp 通过ASP循环语句显示数据库中的所有企业,当鼠标移到“查看该企业产品”时在鼠标下方显示层,并在层中通过AJAX载入该企业的产品<%sql="select * from qiye"
set rs=server.createobject("adodb.recordset")                     
rs.open sql,conn,1,1                     
do while not rs.eof 
pmid=rs("SMT_id")
mmid="td"&pmid
jmid="test"&pmid
kmid="gg"&pmid
%>
<span  onMouseOver="over(this,<%=mmid%>);callServer('<%=jmid%>','<%=fmid%>','<%=pmid%>');" onMouseOut="timer=setTimeout('out(<%=mmid%>)',10)" >查看该企业产品</span>
<%rs.movenext 
loop
rs.close%>说明:当鼠标移动到查看该企业产品,显示隐藏层的代码,已通过测试,略过
<script   language="javascript">   
function over(obj,div,bol){
略过........
}   
</script>
说明:AJAX部分,也已经通过测试略过
<script LANGUAGE=JavaScript>
var tmp;
function callServer(xhy,mk,pmd) {
略过......
2.B.asp部分,AJAX读取的内容页面
<%
Response.Buffer = True 
Response.ExpiresAbsolute = Now() - 1 
Response.Expires = 0 
Response.CacheControl = "no-cache" 
Response.AddHeader "Pragma", "No-Cache"
%>
<%
gjc=request.querystring("name")
qyid=request.querystring("qyid")
cpid=request.querystring("cpid")cocp="<div class='rollBox'><div class='LeftBotton' onmousedown='ISL_GoUp()' onmouseup='ISL_StopUp()' onmouseout='ISL_StopUp()'></div> <div class='Cont' id='ISL_Cont'><div class='ScrCont'><div id='List1'>"
set rs=server.createobject("adodb.recordset")
sql="select  SMT_pic, SMT_cpname,SMT_id from tupian where  duqiye_id="&qyid&" order by SMT_id desc"
rs.open sql,conn,1,1
do while not rs.eof 
tplj=rs("SMT_pic")
cocp=cocp&"<div class='pic'><a href=# target='_blank'><img src="&tplj&" width='109' height='87' alt="&rs("SMT_cpname")&" /></a><p><a href=view.asp?id="&rs("SMT_id")&" target='_blank' >"&LeftT(rs("SMT_cpname"),12)&"</a></p>"
cocp=cocp&"</div> "      
rs.movenext
loop
rs.close
set rs=nothing
cocp=cocp&"</div><div id='List2'></div></div></div><div class='RightBotton' onmousedown='ISL_GoDown()' onmouseup='ISL_StopDown()' onmouseout='ISL_StopDown()'></div></div></div>"response.write cocp
%>图片滚动部分所需的JS和CSS代码:
<style type="text/css">
CSS 代码略过。
<!--
</style>
<script language="javascript" type="text/javascript">
<!--//--><![CDATA[//><!--
var Speed = 1; //速度(毫秒)
var Space = 5; //每次移动(px)
var PageWidth = 528; //翻页宽度
var fill = 0; //整体移位
var MoveLock = false;
var MoveTimeObj;
var Comp = 0;
var AutoPlayObj = null;
GetObj("List2").innerHTML = GetObj("List1").innerHTML;
GetObj('ISL_Cont').scrollLeft = fill;
GetObj("ISL_Cont").onmouseover = function(){clearInterval(AutoPlayObj);}
GetObj("ISL_Cont").onmouseout = function(){AutoPlay();}
AutoPlay();
function GetObj(objName){if(document.getElementById){return eval('document.getElementById("'+objName+'")')}else{return eval('document.all.'+objName)}}
function AutoPlay(){ //自动滚动
 clearInterval(AutoPlayObj);
 AutoPlayObj = setInterval('ISL_GoDown();ISL_StopDown();',2000); //间隔时间
}
function ISL_GoUp(){ //上翻开始
 if(MoveLock) return;
 clearInterval(AutoPlayObj);
 MoveLock = true;
 MoveTimeObj = setInterval('ISL_ScrUp();',Speed);
}
function ISL_StopUp(){ //上翻停止
 clearInterval(MoveTimeObj);
 if(GetObj('ISL_Cont').scrollLeft % PageWidth - fill != 0){
  Comp = fill - (GetObj('ISL_Cont').scrollLeft % PageWidth);
  CompScr();
 }else{
  MoveLock = false;
 }
 AutoPlay();
}
function ISL_ScrUp(){ //上翻动作
 if(GetObj('ISL_Cont').scrollLeft <= 0){GetObj('ISL_Cont').scrollLeft = GetObj('ISL_Cont').scrollLeft + GetObj('List1').offsetWidth}
 GetObj('ISL_Cont').scrollLeft -= Space ;
}
function ISL_GoDown(){ //下翻
 clearInterval(MoveTimeObj);
 if(MoveLock) return;
 clearInterval(AutoPlayObj);
 MoveLock = true;
 ISL_ScrDown();
 MoveTimeObj = setInterval('ISL_ScrDown()',Speed);
}
function ISL_StopDown(){ //下翻停止
 clearInterval(MoveTimeObj);
 if(GetObj('ISL_Cont').scrollLeft % PageWidth - fill != 0 ){
  Comp = PageWidth - GetObj('ISL_Cont').scrollLeft % PageWidth + fill;
  CompScr();
 }else{
  MoveLock = false;
 }
 AutoPlay();
}
function ISL_ScrDown(){ //下翻动作
 if(GetObj('ISL_Cont').scrollLeft >= GetObj('List1').scrollWidth){GetObj('ISL_Cont').scrollLeft = GetObj('ISL_Cont').scrollLeft - GetObj('List1').scrollWidth;}
 GetObj('ISL_Cont').scrollLeft += Space ;
}
function CompScr(){
 var num;
 if(Comp == 0){MoveLock = false;return;}
 if(Comp < 0){ //上翻
  if(Comp < -Space){
   Comp += Space;
   num = Space;
  }else{
   num = -Comp;
   Comp = 0;
  }
  GetObj('ISL_Cont').scrollLeft -= num;
  setTimeout('CompScr()',Speed);
 }else{ //下翻
  if(Comp > Space){
   Comp -= Space;
   num = Space;
  }else{
   num = Comp;
   Comp = 0;
  }
  GetObj('ISL_Cont').scrollLeft += num;
  setTimeout('CompScr()',Speed);
 }
}
//--><!]]>
</script>
问题:当ASP读取出每个企业,鼠标移到“显示该企业所有图片” 时 ,AJAX载入B.ASP中的内容,但是载入的图片只有移到第一个企业或是最后一个企业上点击按钮,图片滚动JS效果是会生效的(说明:JS如果是单个的不是在一个循环页面里使用都是正常滚动的),其他的企业的就滚动不了,我研究了一天,觉得应该是  id='ISL_Cont'  id='List1'这些DIV层名称是固定的,出现了重名冲突,但是不知道应该怎么改,望高手相助!!!

解决方案 »

  1.   

    给ID的时候,可以跟上下标,让DIV ID变成唯一的就可以了朋友。
      

  2.   

    就是根据你自己的逻辑,类似于这样:
    for(var v = 0; v < 10; v++){
    .....
    var div="<div name='div01' id='_div'+v ><div/>";}
      

  3.   

    企业ID<%=mmid%>应该和后面产生的DIV的ID进行关联,这样才能对号操作。
      

  4.   

    不过楼主好像说的是通过AJAX,每次只返回一个DIV吧。那就应该不存在DIV的ID引起混乱的事情了。把生成后的HTML贴一下吧。现在这样看着累。