不必要になった要素を非表示にしたいのですが、良い方法を教えて下さい。
こんにちは、お世話になります。
早速ですが、質問させてください。
リスト表示している要素をクリックしたら、その要素の上にフォームを表示してポストしたいと思っています。
おおよそ出来る様になったのですが、不必要になったと思われる時に、非表示にする事ができません。
フォームを表示している<div>以外の部分をクリックしたり、入力部からフォーカスが外れた時に非表示にするにはどのようにすれば良いか教えて下さい。
jQueryを使っています。firefox 3 で動けば良いと思っています。
見にくいと思いますが、以下に出来るだけ簡略化した物を貼り付けます(tabを全角スペースにしてあります)。よろしくおねがいします。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>test</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('span').each(function(){
$(this).click(function(){
$('#form_box').hide();
$('#name').val($(this).html());
var offset = $(this).offset();
$('#form_box').css({'top' : offset.top , 'left' : offset.left }).show('fast',function(){$('#name').focus()});
});
})
//$('#name').blur(function(){$('#form_box').hide();})
});
function hide() {
$('#form_box').hide();
return false;
}
</script>
<style type="text/css">
span {
cursor : pointer;
}
</style>
</head>
<body>
<ul>
<li><span>1</span>
<ul>
<li><span>1-1</span></li>
</ul>
</li>
<li><span>2</span>
<ul>
<li><span>2-1</span>
<ul>
<li><span>2-1-1</span></li>
</ul>
</li>
<li><span>2-2</span></li>
</ul>
</li>
</ul>
<div id="form_box" style="display:none;position:absolute;">
<form onsubmit="alert('送信')">
<input type="text" id="name" />
<input type="submit" value="送信" />
<button onclick="return hide();">閉じる</button>
</form>
</div>
</body>
</html>