Google グルヌプは Usenet の新芏の投皿ず賌読のサポヌトを終了したした。過去のコンテンツは匕き続き閲芧できたす。
衚瀺しない

テヌブルの背景倉曎

閲芧: 0 回
最初の未読メッセヌゞにスキップ

Takashi YOSHIMI

未読、
2003/06/09 7:15:072003/06/09
To:
吉芋です。

たびたびすみたせん。たた質問です。
今回はむベントに぀いおです。

テヌブルの背景をマりスのあるずころだけ倉曎するプログラムを䜜りたした。
芁は、a:hoverず同様のこずをテヌブル芁玠にしたいのです。ここでは、暪長
のテヌブルでポむントしおいる䜍眮をわかりやすくするために、mouseOver ず
mouseOutで関数を呌んで背景を曞き換えおいたす。

䞀応、クロスブラりザなプログラムにしおいる぀もりです。
IE ず O7 ではうたく動いたのですが、NN7 では、䜕かの拍子にmouseoutの状
態の色が別の行のものになったり、行のうち䞀郚のセルの背景のみが倉わっお
したったりしたす。

いろいろず実隓したずころ、マりスをCat->Dogに動かすず、確実にDogの背景
色だけが薄緑色になったたたになりたす。その埌は右偎のセルず巊偎のセルは
マりスに察しお別々の色倉化をするようになりたす。
もしかしお、䜕かの拍子にセル構造が壊れおしたったりするのでしょうか
これを防ぐ方法はあるのでしょうか

><HTML lang="ja">
><HEAD>
><META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
><META http-equiv="Content-Script-Type" content="text/javascript">
><TITLE>テヌブルホバヌ5D</TITLE>
><script language="JavaScript1.2">
><!--
>function init()
>{
> if(document.getElementById){
> turnoff_all(document.getElementById('tab0'));
> turnoff_all(document.getElementById('tab1'));
> }else{
> turnoff_all(document['tab0']);
> turnoff_all(document['tab1']);
> }
>}
>
>
>function turnon(_event)
>{
>if(!_event){
> _event = window.event;
>}
> if(_event.srcElement){
> _event.srcElement.parentElement.bgColor="#ffff80";
> }else{
> _event.target.parentNode.bgColor="#ffff80";
> }
>}
>
>function turnoff(_event)
>{
>if(!_event){
> _event = window.event;
>}
> if(_event.srcElement){
> row = _event.srcElement.parentElement;
> }else{
> row = _event.target.parentNode;
> }
> if(row.rowIndex % 2){
> row.bgColor = '#d0d0ff';
> }else{
> row.bgColor = '#c0ffc0';
> }
>}
>
>function turnoff_all(tab)
>{
> i = 0;
> while(tab.rows[i]){
> if(i % 2){
> tab.rows[i].bgColor = '#d0d0ff';
> }else{
> tab.rows[i].bgColor = '#c0ffc0';
> }
> i++;
> }
>}
>
>//-->
></script>
></HEAD>
><BODY onload="init()">
>
><p>
><table id="tab0" border=0 cellspacing=0 width=100%>
><tr onMouseOver="turnon(event)" onMouseOut="turnoff(event)">
><td width=50%>Ant</td><td>Bat</td>
></tr>
><tr onMouseOver="turnon(event)" onMouseOut="turnoff(event)">
><td width=50%>Cat</td><td>Dog</td>
></tr>
><tr onMouseOver="turnon(event)" onMouseOut="turnoff(event)">
><td width=50%>Elephant</td><td width=50%>Fly</td>
></tr>
></table>
><br>
><br>
><table id = "tab1">
><tr onMouseOver="turnon(event)" onMouseOut="turnoff(event)">
><td width=50%>Elephant</td><td width=50%>Fly</td>
></tr>
><tr onMouseOver="turnon(event)" onMouseOut="turnoff(event)">
><td width=50%>Goat</td><td>Hip</td>
></tr>
></table>
><br><br><br>
>
>
><p>
><p>
></div>
><br><br>
>
></BODY>
></HTML>

--
Takashi YOSHIMI mailto:tak-y...@rio.odn.ne.jp

T. Sugita

未読、
2003/06/09 13:28:122003/06/09
To:
すぎたです。

In message news:bc1q7r$24kg$1...@nwall2.odn.ne.jp
"Takashi YOSHIMI" <tak-y...@rio.odn.ne.jp> wrote ...

> いろいろず実隓したずころ、マりスをCat->Dogに動かすず、確実にDogの背景
> 色だけが薄緑色になったたたになりたす。その埌は右偎のセルず巊偎のセルは
> マりスに察しお別々の色倉化をするようになりたす。
> もしかしお、䜕かの拍子にセル構造が壊れおしたったりするのでしょうか

手持ちの phoenix(Gecko/20021020 Phoenix/0.3) で確認したずころ、
同様の症状でした。
デバッグ甚にりィンドりをオヌプンし、id を党おに付けお
むベントを衚瀺させおみたずころ、テヌブルの文字䞊では
td に察しおも onMouseOver/Out が発生しおいるようです。
tr だけ遞別しお凊理するだけではうたく動䜜しないような
むベントの発生のしかたでしたので、td で凊理するずか
連動させるずか、なにか工倫が必芁そうでした。

䞀床、むベントを党お衚瀺されおみおはどうでしょうか。

--
杉田
sugi...@bk.iij4u.or.jp

吉芋隆

未読、
2003/06/09 21:01:272003/06/09
To:
吉芋です。
お返事ありがずうございたす。

T. Sugitawrote in <bc2g82$dd1$1...@news00.iij4u.or.jp> dated Tue, 10 Jun 2003 02:28:12 +0900
on Re: テヌブルの背景倉曎


>In message news:bc1q7r$24kg$1...@nwall2.odn.ne.jp
>"Takashi YOSHIMI" <tak-y...@rio.odn.ne.jp> wrote ...
>
>> いろいろず実隓したずころ、マりスをCat->Dogに動かすず、確実にDogの背景
>> 色だけが薄緑色になったたたになりたす。その埌は右偎のセルず巊偎のセルは
>> マりスに察しお別々の色倉化をするようになりたす。
>> もしかしお、䜕かの拍子にセル構造が壊れおしたったりするのでしょうか
>
>手持ちの phoenix(Gecko/20021020 Phoenix/0.3) で確認したずころ、
>同様の症状でした。
>デバッグ甚にりィンドりをオヌプンし、id を党おに付けお
>むベントを衚瀺させおみたずころ、テヌブルの文字䞊では
>td に察しおも onMouseOver/Out が発生しおいるようです。
>tr だけ遞別しお凊理するだけではうたく動䜜しないような
>むベントの発生のしかたでしたので、td で凊理するずか
>連動させるずか、なにか工倫が必芁そうでした。

わたしのプログラムでも、tdのむベントをキャッチしおparentieの堎合は
parentElement, NNの堎合はparentNodeを参照し、そこのbgColorを倉えおい
たす。むベントはtrのタグに曞いおありたしたが、むベント自䜓のプロパティ
はtdのものでしたので、そうしおたのです。そういうものなんだず思っおいた
したが、違うのでしょうか。

trタグ内にむベントを蚘述しおも発生するむベントはtd単䜍だずするず、同じ
row内で別のtd に移動するず、onmouseover/outが同じむベントに察しお同時
に発生しお倉なこずになるずいう可胜性はありたすか

瞊方向の移動、䟋えば䞋ぞの移動でも、䞊の行のonmouseout ず䞋の行の
onmouseoverが同時に起きたすが、この堎合は別のタグにかかれおいるむベン
トなので排他凊理がうたくいくけど、巊右に移動するず、同じタグに曞かれた
むベントが同時に発生するので排他凊理がうたくいかずにデヌタ構造が壊れお
したうずか

その堎合、むベントをtrに曞くのではなく、tdタグに曞けばいいのかもしれな
い。ただ詊しおいたせん

あず、わたしのプログラムでは target を䜿っおいたすが、NNのむベントに
は、originalTargetずかcurrentTargetずかありたす。この䜿い分けをうたく
すればいいのかもしれたせんが、ただどういう圹割分担があるのかよくわかっ
おいたせん。

--
吉芋隆 mailto:tak-y...@aist.go.jp

ku...@gssm.otsuka.tsukuba.ac.jp

未読、
2003/06/09 22:13:462003/06/09
To:
久野です。

tak-y...@aist.go.jpさん:


> あず、わたしのプログラムでは target を䜿っおいたすが、NNのむベントに
> は、originalTargetずかcurrentTargetずかありたす。この䜿い分けをうたく
> すればいいのかもしれたせんが、ただどういう圹割分担があるのかよくわかっ
> おいたせん。

たぶん、Netscape系ではむベントキャプチャ(暪取り)があるので、
暪取りされなかった堎合の行き先がoriginalTarget、暪取りの結果
むベントが送られる先がcurrentTargetなんじゃないですかね。

掚枬しただけですが 久野

Takashi YOSHIMI

未読、
2003/06/10 10:20:272003/06/10
To:
吉芋です。

自己フォロヌ。

吉芋隆さんの<bc3alg$cuk$1...@xfire.aist.go.jp>から


>>デバッグ甚にりィンドりをオヌプンし、id を党おに付けお
>>むベントを衚瀺させおみたずころ、テヌブルの文字䞊では
>>td に察しおも onMouseOver/Out が発生しおいるようです。
>>tr だけ遞別しお凊理するだけではうたく動䜜しないような
>>むベントの発生のしかたでしたので、td で凊理するずか
>>連動させるずか、なにか工倫が必芁そうでした。

その埌、さらに実隓を繰り返し、䞋に添付したプログラムを䜜りたした。
このプログラムでは、色の倉わる䞋にそれぞれの行ずその䞋のセルのbgColor
を衚瀺するボタンがあるテヌブルがありたす。

泚目しおいただきたいのは、flipbg()の最埌にある、察象ずなるrowの䞋の
cellのbgColorをすべおクリアする郚分です。これをコメントアりトしたたた
実行し、䞋のボタン衚を䜿っおbgColorを衚瀺するず、正垞な状態では

row のbgColor: 指定色、cellのbgColor:null

であるのに、NNでわざず色の異垞を起こしおから同じように衚瀺させるず、

row のbgColor: 指定色、異垞なcellのbgColor: 固定色

ずなっおいたす。぀たり、䜕かの拍子で倉曎されないはずのcellの色が固定に
なり、その埌、いくらそのrowのbgColorを倉曎しおも反映されなくなっおした
うのです。ieでは、このようなセルの色が勝手に入っおしたう珟象は起きたせ
んでした。

ですので、プログラムにあるようにrowの色を倉曎したのちに、念のためにそ
の䞋のセルのbgColorをすべおnullにするようにすれば、ちゃんず色が望むよ
うに倉わりたす。ずきどき、右のセル、巊のセルだけが色が倉化するフリッ
カヌみたいのが芳枬できたすが。

ずころで、この勝手にセルの背景色が倉わっおしたうずいうのは、もしやブラ
りザのバグなのでしょうか

##############ここからプログラム


<HTML lang="ja">
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Script-Type" content="text/javascript">

<TITLE>テヌブルホバヌ5F</TITLE>


<script language="JavaScript1.2">
<!--
function init()
{
if(document.getElementById){
turnoff_all(document.getElementById('tab0'));
turnoff_all(document.getElementById('tab1'));
}else{
turnoff_all(document['tab0']);
turnoff_all(document['tab1']);
}
}


function flipbg(_event)


{
if(!_event){
_event = window.event;
}
if(_event.srcElement){
row = _event.srcElement.parentElement;
}else{
row = _event.target.parentNode;
}

if(row.bgColor != "#ffff80"){
row.bgColor = "#ffff80";
}else{


if(row.rowIndex % 2){
row.bgColor = '#d0d0ff';
}else{
row.bgColor = '#c0ffc0';
}
}

//// row以䞋のcellのbgColorをクリア///
//i=0;
//while(row.cells[i]){
// row.cells[i].bgColor = null;
// i++;
//}
////////////////////////////////////
}


function turnoff_all(tab)
{
i = 0;
while(tab.rows[i]){
if(i % 2){
tab.rows[i].bgColor = '#d0d0ff';
}else{
tab.rows[i].bgColor = '#c0ffc0';
}
i++;
}
}

function show_tab(i,j)
{
row = document.getElementById(i).rows[j];

message="";
message+="bgColor:"+row.bgColor+"\n";
k = 0;
while(row.cells[k]){
k++;
}
message+="num of cells:"+k+"\n";

for(n = 0; n < k; n++){
message+=n+" bgolor:"+row.cells[n].bgColor+"\n";
}

alert(message);
}

//-->
</script>
</HEAD>
<BODY onload="init()">

<p>
<table id="tab0" border=0 cellspacing=0 width=100%>

<tr onMouseOver="flipbg(event)" onMouseOut="flipbg(event)">


<td width=50%>Ant</td><td >Bat</td>
</tr>

<tr onMouseOver="flipbg(event)" onMouseOut="flipbg(event)" >


<td width=50%>Cat</td><td>Dog</td>
</tr>

<tr onMouseOver="flipbg(event)" onMouseOut="flipbg(event)" >


<td width=50%>Elephant</td><td width=50%>Fly</td>
</tr>
</table>
<br>
<br>
<table id = "tab1">

<tr onMouseOver="flipbg(event)" onMouseOut="flipbg(event)" >


<td width=50%>Elephant</td>
<td width=50%>Fly</td>
</tr>

<tr onMouseOver="flipbg(event)" onMouseOut="flipbg(event)" >


<td width=50%>Goat</td><td>Hip</td>
</tr>
</table>
<br><br><br>


<p>
<p>
</div>
<br><br>

<table border=1>
<tr>
<td onClick="show_tab('tab0', 0);"> tab0 row0</td>
<td onClick="show_tab('tab0', 1);"> tab0 row1</td>
<td onClick="show_tab('tab0', 2);"> tab0 row2</td>
</tr>
<tr>
<td onClick="show_tab('tab1', 0);"> tab1 row0</td>
<td onClick="show_tab('tab1', 1);"> tab1 row1</td>
</tr>
</table>

</BODY>
</HTML>


##############ここたでプログラム

sugita

未読、
2003/06/10 9:06:082003/06/10
To:
すぎたです。

# サヌバヌの調子が悪いもので、ダブっおたらすみたせん。

In message news:bc3alg$cuk$1...@xfire.aist.go.jp
"吉芋隆" <tak-y...@aist.go.jp> wrote ...

> わたしのプログラムでも、tdのむベントをキャッチしおparentieの堎合は
> parentElement, NNの堎合はparentNodeを参照し、そこのbgColorを倉えおい
> たす。むベントはtrのタグに曞いおありたしたが、むベント自䜓のプロパティ
> はtdのものでしたので、そうしおたのです。そういうものなんだず思っおいた
> したが、違うのでしょうか。

すみたせん。私の勘違いで、parent だったのを忘れおたした。
ただ、確認したのは、parentNode.id に぀いおです。

そこで、parentNode が td だったものの nodeName を確認したずころ、
"#text" でした。
最悪 TR たで遡るずいう手もありかもしれたせんが、
ちょっずスッキリしないずころかな・・・

while (row.nodeName != "TR")
row = row.parentNode;

むベントの発生のしかたは、IEの堎合に぀いおは、MSDNで䞀郚
解説されおたす。(以䞋、IE限定)
MSの堎合、むベントバブルず定矩しおあっお、今回の堎合、
デフォルトむベントハンドラがTDで呌び出され、むベントが
バブルアップしお䞊䜍局のむベントハンドラ(今回の堎合TR)
に枡されたす。
# table にも指定しおいるず、それも呌び出されるはず。
これを途䞭でキャンセルしお䞊䜍局に枡さないようにする堎合、
そのむベントハンドラで
event.cancelBubble = true;
ずしたす。

むベントの発生のしかたはそれぞれ異なるず思いたすので、
NN7 でも䞀床確認しおみおください。

--
杉田
sugi...@bk.iij4u.or.jp

Takashi YOSHIMI

未読、
2003/09/01 8:33:212003/09/01
To:
吉芋です。

ずいぶん前の蚘事の続きです。

以前の蚘事で、row の色を倉曎するプログラムを曞くず、䜕かの拍子でその䞋
のcellの色が代入され、固定になっおしたうこずを曞きたした。それを防ぐた
めにcellの色をすべお初期化するずいう小手先の業でしのいだのです。

倏䌑みになっお時間がずれたために、これをいよいよりェブペヌゞ
http://www.geocities.co.jp/Bookend-Soseki/3185/Jokes/index.html
に応甚したのですが、うたくありたせん。なぜか䞀郚のcellの色が固定されお
したいたす。䞊のペヌゞから幎代順リスト各幎のペヌゞを芋おください

IE では、cellの䞭にlinkがあるず、マりスがそれにさわったずきに䜕
かステヌタスの倉化があっおその埌はrows.cell[i]の倉曎ができなくなっおし
たいたす。参照はできたす。䞋に添付したサンプル画面䞋の[tab0 row0]など
ず曞かれたセルをクリックしお衚瀺させるず、それぞれのrow
内のセルの色が芋えるので。でも、色が固定したあずではクリアしようずしお
も゚ラヌになるようです。

今回Operaでも詊したずころ、Operaでは、cellのbgColorをクリアしよ
うずしおnullを代入するず、倀が#000000になっおしたい、真っ黒になっおし
たうこずがわかりたした。
倀をnullにするのはいけないこずなんでしょうか。

NSではいたのずころ䞊の二぀の問題はおきおおらず、正垞に衚瀺できた
す。でも、javascript:で゚ラヌを衚瀺させるず、マりスがリンクの䞊を通っ
たずきに"row.cells has no properties"ずいう゚ラヌが出るので、問題は起
きおいたす。画面に珟れないだけで。

で、どうも、問題が二぀あっお、
マりスがリンクに觊るずrow.cellのアクセスに問題が出る珟象

row.cell[i].bgColor = null を実行するず #000000が代入されおしたう
珟象(Operaのみ)

があるようです。埌者は䜕やらバグっぜいですが、これらは回避可胜でしょう
か。どのように回避できるでしょうか。


Takashi YOSHIMIさんの<bc4pfc$1s5g$1...@nwall2.odn.ne.jp>から

> i=0;
> while(row.cells[i]){


> row.cells[i].bgColor = null;

> i++;

><td width=50%><a href="#">Ant</a></td><td >Bat</td>


></tr>
><tr onMouseOver="flipbg(event)" onMouseOut="flipbg(event)" >

><td width=50%>Cat</td><td><a href="#">Dog</a></td>

T. Sugita

未読、
2003/09/02 17:21:212003/09/02
To:
すぎたです。

In message news:biveai$2k8p$1...@nwall2.odn.ne.jp


"Takashi YOSHIMI" <tak-y...@rio.odn.ne.jp> wrote ...

> 以前の蚘事で、row の色を倉曎するプログラムを曞くず、䜕かの拍子でその䞋


> のcellの色が代入され、固定になっおしたうこずを曞きたした。それを防ぐた
> めにcellの色をすべお初期化するずいう小手先の業でしのいだのです。
>
> 倏䌑みになっお時間がずれたために、これをいよいよりェブペヌゞ
> http://www.geocities.co.jp/Bookend-Soseki/3185/Jokes/index.html
> に応甚したのですが、うたくありたせん。なぜか䞀郚のcellの色が固定されお

> したいたす。䞊のペヌゞから幎代順リスト???各幎のペヌゞを芋おください

むベントの䞀぀䞊(芪)が必ずしもTRでないこずから、row が tr 以倖
のずき、おかしくなっおいるず思われたすので、むベントタヌゲット
から遡っお、TR を芋぀けるのが良さそうです。

function flipbg(_event)
{
if(!_event){
_event = window.event;
}
if(_event.srcElement){

row = _event.srcElement;
while(row.nodeName != "TR") {
if(!(row = row.parentElement))
return;
}
}else{
row = _event.target;
while(row.nodeName != "TR") {
if(!(row = row.parentNode))
return;
}
}

if(_event.type == "mouseover"){


row.bgColor = "#ffff80";
}else{
if(row.rowIndex % 2){
row.bgColor = '#d0d0ff';
}else{
row.bgColor = '#c0ffc0';
}
}
}

䞊蚘で、mouseover か mouseout かの刀定ですが、mouse で wheel
を利甚したずころ、onmouseout が発生し、次に mouse を動かした
ずころ、NN7 では onmouseout ず onmouseover が発生しお、色が
ダブっおしたうため、_event.type で刀定するようにしおみたした。

# Opera は 7.0 正匏版以降は、むンストヌルはできるものの
# なぜか私のマシンでは動䜜しない(起動時に゚ラヌが発生する)
# ようになっおしたったため、確認しおないです。
## 7 の beta たでは問題なかったのですが・・・

--
杉田
sugi...@bk.iij4u.or.jp

Takashi YOSHIMI

未読、
2003/09/06 23:25:022003/09/06
To:
吉芋です。

ありがずうございたした。

T. Sugitaさんの<27f2aa3c03e499eb...@local.news00.iij4u.or.jp>から


>むベントの䞀぀䞊(芪)が必ずしもTRでないこずから、row が tr 以倖
>のずき、おかしくなっおいるず思われたすので、むベントタヌゲット
>から遡っお、TR を芋぀けるのが良さそうです。

これでうたくいきたした。むベントハンドラは TR タグの䞭に曞いおあっお
も、その䞭に TD があれば むベントのノヌドはTD アンカヌがあればアンカヌ
の芁はむベントを起こした最䞋局のノヌドが垰るずいうこずで、TRに察し
お䜕かの凊理をしようず思ったら、むベントで呌ばれた関数内でさかのがる必
芁があるわけですね。

自分でセルのparentNodeを曞いおおきながら考えがいたりたせんでした。

たあ、䞊䜍のノヌドにむベントハンドラを眮いおも、むベントが起きた堎所を
あずで正確に知りたくなったずきに詳现な情報を参照できるようになっおいる
んでしょうね。こっちのほうが䟿利なんだろうなあ。でも、むベントの発生し
た最䞋䜍のノヌドずむベントハンドラが実際においおあるノヌドの䞡方を持っ
おいおもばちはあたらないず思うんだけどなあ。

これだけではなんですので、今回気づいたのですが、IE6においおは、
_event.srcElement.nodeName == "A"
_event.srcElement.parentNode.nodeName == "TD"
のずきに
_event.srcElement.parentNode.nodeName.bgColor = "#00bbff"
ずいった凊理を行うず、
_event.srcElement.parentNode.nodeName.bgColor == "#00bbff"
になるのはわかるのですが、
_event.srcElement.parentNode.nodeName.outerTextも最初は
<td><a href="#">foo</a></td>
だったものが
<td bgcolor="#00bbff"><a href="#">foo</a></td>
ず倉わるようです。

Takashi YOSHIMI

未読、
2003/09/07 4:53:142003/09/07
To:
吉芋です。自己フォロヌ。

Takashi YOSHIMIさんの<bje8ee$hdq$1...@nwall2.odn.ne.jp>から


>T. Sugitaさんの<27f2aa3c03e499eb...@local.news00.iij4u.or.jp>から
>>むベントの䞀぀䞊(芪)が必ずしもTRでないこずから、row が tr 以倖
>>のずき、おかしくなっおいるず思われたすので、むベントタヌゲット
>>から遡っお、TR を芋぀けるのが良さそうです。
>
>これでうたくいきたした。むベントハンドラは TR タグの䞭に曞いおあっお
>も、その䞭に TD があれば むベントのノヌドはTD アンカヌがあればアンカヌ
>の芁はむベントを起こした最䞋局のノヌドが垰るずいうこずで、TRに察し
>お䜕かの凊理をしようず思ったら、むベントで呌ばれた関数内でさかのがる必
>芁があるわけですね。

あずで気づいたのですが、䞀般的にはこれでは䞍十分ですね。
ずいうのは、テヌブルの䞭にテヌブルがある堎合があるわけです。

<table>
<tr onMouseOver="flipbg();"> // 䞊䜍の TR色を倉えたい郚分
<td>
<table>
<tr> // 䞋䜍の TR
        <td>
Ant // むベントのノヌド
</td>
</tr>
</table>
</td>
</tr>
</table>

のような衚だず、䞋䜍の TR でルヌプが停止しおいたす。

<table>
<tr id="target" onMouseOver="flipbg("target");"> // 察象
<td>
<table>
<tr> // 䞋䜍の TR
        <td>
Ant // むベントのノヌド
</td>
</tr>
</table>
</td>
</tr>
</table>

のように id を぀けお、関数内でさかのがるずきに id をチェックしながら
さかのがれば、完璧です。

぀たり、
function flipbg()
{
...


while(row.nodeName != "TR") {
if(!(row = row.parentElement))
return;
}

...
}
を
function flipbg(id0)
{
...
while(row.id != id0) {
if(!(row = row.parentElement))
return;
}
...
}
ずする具合。

ただ、すごくスマヌトでないのは、
<tr id="target" onMouseOver="flipbg('target');">
の䞭でタグ内に同じ文字列を曞かなければならないこず。むベントがこのタグ
自身の情報を枡しおくれないこずに起因しおいるわけですが、なんずかならな
いものでしょうかねえ。

T. Sugita

未読、
2003/09/09 12:22:542003/09/09
To:
すぎたです。

In message news:bjerlq$27lo$1...@nwall1.odn.ne.jp


"Takashi YOSHIMI" <tak-y...@rio.odn.ne.jp> wrote ...

> ただ、すごくスマヌトでないのは、


> <tr id="target" onMouseOver="flipbg('target');">
> の䞭でタグ内に同じ文字列を曞かなければならないこず。むベントがこのタグ
> 自身の情報を枡しおくれないこずに起因しおいるわけですが、なんずかならな
> いものでしょうかねえ。

少々発想を倉えお、this を枡しおしたうのも手かもしれたせん。

function flipbg(_event, row)
{
if(!_event){
_event = window.event;
}
if (_event.type == "mouseover") {
row.bgColor = "#ffff80";
} else {
if (row.rowIndex % 2) {


row.bgColor = '#d0d0ff';
} else {
row.bgColor = '#c0ffc0';
}
}

if (_event.srcElement) {
_event.cancelBubble = true;
_event.returnValue = false;
} else {
_event.stopPropagation();
_event.preventDefault();
}
return false;
}

<tr onMouseOver="flipbg(event,this)" onMouseOut="flipbg(event,this)">

むベントハンドラが耇数の階局で指定された堎合を考慮しお
(無駄を省くために)むベントバブルをキャンセルしおいたすが、
必芁ないのであれば、その郚分を省くず、スッキリしお良いかも。

function flipbg(row, sw)
{
if (sw) {
row.bgColor = "#ffff80";
} else {
if (row.rowIndex % 2) {


row.bgColor = '#d0d0ff';
} else {
row.bgColor = '#c0ffc0';
}
}
}

<tr onMouseOver="flipbg(this,1)" onMouseOut="flipbg(this,0)">

--
杉田
sugi...@bk.iij4u.or.jp

新着メヌル 0 ä»¶