흐익 자바스크립트 문의좀 할게용 흑 정보
흐익 자바스크립트 문의좀 할게용 흑
본문
1번사진은 2번 롤오버시 두개가 나와야하는데 한개만 나오구요 ㅠㅠ
소스보기 했을때 실제로 B로 두개 나와있는데 한개만 보입니다. ㅠㅠ
소스
===========
<?
$sql ="select * from g4_group";
$query = sql_query($sql);
$rows = mysql_num_rows($query);
?>
<div id="menu">
<ul class="top">
<li class="home">HOME</li>
<?
for($i=0; $i < $rows; $i++){
$rs = mysql_fetch_array($query);
?>
<li onmouseover='subView("<?=$rs[gr_id]?>","block");'><?=$rs[gr_id]?></li>
<?}?>
</ul>
<div class="bottom">
<?
$sql = "select * from g4_board";
$query = mysql_query($sql);
$rows = mysql_num_rows($query);
for($i=0; $i < $rows; $i++){
$rs = mysql_fetch_array($query);
?>
<ul id='<?=$rs[gr_id]?>' style='display:none'>
<li><?=$rs[bo_table];?></li>
</ul>
<?
}
?>
</div>
</div>
<br>
<script language='javascript' type='text/javascript'>
//<![CDATA[
var poj = null;
function subView(pos,disp)
{
var obj = document.getElementById(pos);
if(poj) poj.style.display = 'none';
obj.style.display = disp;
poj = obj;
}
//]]>
</script>
소스보기 했을때 실제로 B로 두개 나와있는데 한개만 보입니다. ㅠㅠ
소스
===========
<?
$sql ="select * from g4_group";
$query = sql_query($sql);
$rows = mysql_num_rows($query);
?>
<div id="menu">
<ul class="top">
<li class="home">HOME</li>
<?
for($i=0; $i < $rows; $i++){
$rs = mysql_fetch_array($query);
?>
<li onmouseover='subView("<?=$rs[gr_id]?>","block");'><?=$rs[gr_id]?></li>
<?}?>
</ul>
<div class="bottom">
<?
$sql = "select * from g4_board";
$query = mysql_query($sql);
$rows = mysql_num_rows($query);
for($i=0; $i < $rows; $i++){
$rs = mysql_fetch_array($query);
?>
<ul id='<?=$rs[gr_id]?>' style='display:none'>
<li><?=$rs[bo_table];?></li>
</ul>
<?
}
?>
</div>
</div>
<br>
<script language='javascript' type='text/javascript'>
//<![CDATA[
var poj = null;
function subView(pos,disp)
{
var obj = document.getElementById(pos);
if(poj) poj.style.display = 'none';
obj.style.display = disp;
poj = obj;
}
//]]>
</script>
댓글 전체
이것은 아이디값 충돌이라고 볼수 있는데요.
아이디라는건 한페이지당 한개의 이름밖에 사용할 수 없는데 두개를 사용하시다 보니 저런 문제가 발생한것 같네요.
페이지 이동시 보여주는 스크립트 소스 분석을 해보자면
var poj = null; //변수 선언
function subView(pos,disp) // (아이디값,스타일속성값)
{
var obj = document.getElementById(pos); //마우스오버할 경우 해당 아이디값 선언
if(poj) poj.style.display = 'none'; // 만약 이전 아이디값이 있을 경우 보이지 않게 변경
obj.style.display = disp; //마우스 오버한 부분 스타일 속성값에 맞추어 변경 "block" 이건 보여줄때 사용함. 반대로 "none"은 숨길때 사용
poj = obj; //현재 아이디값을 poj라는 변수에 선언하여 이전 아이디값을 기록함.
}
이렇게 이전아이디값을 계속 체크해서 다른탭으로 넘어갈때 체크해서 숨기기때문에 한개밖에 볼일 수밖에 없구요.
만약 그때에만 다르게 변경하고자 하신다면 스크립트를 수정하셔야겠죠?
아이디라는건 한페이지당 한개의 이름밖에 사용할 수 없는데 두개를 사용하시다 보니 저런 문제가 발생한것 같네요.
페이지 이동시 보여주는 스크립트 소스 분석을 해보자면
var poj = null; //변수 선언
function subView(pos,disp) // (아이디값,스타일속성값)
{
var obj = document.getElementById(pos); //마우스오버할 경우 해당 아이디값 선언
if(poj) poj.style.display = 'none'; // 만약 이전 아이디값이 있을 경우 보이지 않게 변경
obj.style.display = disp; //마우스 오버한 부분 스타일 속성값에 맞추어 변경 "block" 이건 보여줄때 사용함. 반대로 "none"은 숨길때 사용
poj = obj; //현재 아이디값을 poj라는 변수에 선언하여 이전 아이디값을 기록함.
}
이렇게 이전아이디값을 계속 체크해서 다른탭으로 넘어갈때 체크해서 숨기기때문에 한개밖에 볼일 수밖에 없구요.
만약 그때에만 다르게 변경하고자 하신다면 스크립트를 수정하셔야겠죠?
ㅜㅜㅜ 이해는 다했습니다.
자스을 안배워먹어서 ㅠㅠ 힘든게 디기많네요 ㅠㅠ
ID값말고 클래스값으로 사용할수있는지등 알아봐야겟네용 ㅠ
자스을 안배워먹어서 ㅠㅠ 힘든게 디기많네요 ㅠㅠ
ID값말고 클래스값으로 사용할수있는지등 알아봐야겟네용 ㅠ