10代と話して驚いたこと

お世話になります。

あるテキストフィールド(text1)をクリックした際に隠れている別のテキストフィールド(text2)を表示し、
フォーカスが外れるとtext2を再度隠すというコードを書きました。

<html>
<head>
<style>
<!--
#text2 {
display: none;
}
-->
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
<!--
$(function() {
$("#text1").click(function() {
$("#text2").show();
}).blur(function() {
$("#text2").hide();
});
});

-->
</script>
</head>
<body>
<form>
<input type="text" id="text1" value=""/>
<input type="text" id="text2" value=""/>
</form>
</body>
</html>

この場合、text1をクリックしたときにtext2が表示されて、フォーカスが外れるとtext2が隠れるのは想定通りの動作なのですが、これをtext2をクリックした場合にはtext1からフォーカスが外れてもtext2を表示したままということはできるのでしょうか。
blurの中でtext2がクリックされた時みたいな検知ができれば実現できると思うのですがそのようなことってできますでしょうか。

よろしくお願いいたします。

A 回答 (1件)

if文とかで状態を管理して振り分けるか


text1とtext2を囲った要素を用意して(たとえばdivとかで)、そこからblurした場合に非表示にするようにすれば。
text1 Click
text2 show
div blur
text2 hide
もし自分が今使っているコードを理解できていないのであればどうなってるのか考えてみましょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

text1、text2を含むdivを作ってそのdivに対して行えばいいんですね。
たしかにそうすればtext2をクリックしてもdivの範囲なのでtext2は隠れませんね。
頭にありませんでした。ありがとうございます。

お礼日時:2012/10/16 12:42

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


おすすめ情報