電子書籍の厳選無料作品が豊富!

クリックする対象が同じですが、別々に開発?しましたら二つの関数になってしまいました。
一つにまとめることが出来るでしょうか?

http://www.okweb.ne.jp/kotaeru.php3?q=430536
http://www.okweb.ne.jp/kotaeru.php3?qid=456289
を参考にさせていただきました。


<html>
<head>
<title></title>
<script language="JavaScript">
<!--

var fn;
var disp_id;
var disp_na;
var disp_vl;

function chk(obj) {
disp_id = null;
disp_na = null;
disp_id = obj.id;
disp_na = obj.name;
disp_vl = 'Id:' + disp_id + ' Na:' + disp_na;
fn="form" + disp_na;
document.all(fn).send.value = disp_vl;
}
//-->
</script>
</head>
<body onClick="unCheck()">

<table border>
<td id="20" name="1" onClick="chk(this)">abc
</td></table>

<form method="POST" name="form1" action="">
<input type="text" size="10" name="send"><br>
<input type="submit" value="送信">
</form>
</body>
</html>




<html>
<head>
<title></title>
<script language="JavaScript">
<!--

var flg=0;
function Exchange(color1,color2){
if(flg == 2){
var el = event.srcElement;
el.bgColor=color2;
}else{
var el = event.srcElement;
el.bgColor=color1;
flg=1;
}
}
function unCheck(){
if (flg == 2){
flg=0;
}else{
flg=2;
}
}
//-->
</script></head>
<body onClick="unCheck()">

<table border>
<td id="20" name="1" onClick="Exchange('blue','yellow');">abc
</td></table>
</body>
</html>

A 回答 (1件)

ひとつにまとめる、ってのは、クリックしたら chk() と Exchange() の二つの動作を行いたい


ってことですよね。

まず、一つの方法。イベントハンドラ (onclick に書いてるやつのこと) は、複数書けます。

<td ~ onClick="Exchange('blue','yellow'); chk(this);">

<script> ~ </script> に書いている内容は、このまま <script> をふたつ書いても良いですし、
ひとつの <script> の中に、それぞれの内容を書いても良いです。

もうひとつは、二つをまとめた関数を書くこと。

<script>
function Exchange_and_chk(color1, color2, obj) {
  Exchange(color1, color2);
  chk(obj);
}
</script>

<td ~ onClick="Exchange_and_chk('blue', 'yellow', this)">

お好きな方をどうぞ。
    • good
    • 0
この回答へのお礼

ありがとう御座います。m(_ _)m
希望通りになりました。unCheck()の時、テキストエリアもクリアする必要がありますね。
これは、何とかなりそうです。

お礼日時:2003/01/28 07:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!