このコードで、blur() の jQuery セレクターとして使用されている div をクリックすると、それが非表示になるのはなぜですか? Blur() は、その外側をクリックした場合にのみ非表示にする必要があります。
HTML トリガー:
<div class="header">To-Do <a class="triggernewtodo">Add a task...</a></div>
表示/非表示:
<li class="addnewtodo">
<form>
<textarea class="addtodotextarea"></textarea>
<div class="controlarea">
<input class="primary" name="commit" type="submit" value="Add" />
</div>
</form>
</li>
jQuery:
// Show/Hide New Todo form
$('a.triggernewtodo').click(function() {
$('li.addnewtodo').show()
$('textarea.addtodotextarea').focus();
});
$('li.addnewtodo').live("blur", function() {
$(this).hide();
})
私の推測では、テキストエリアに配置された .focus() と関係があると思います。その .focus() を取り出すと、テキストエリア内をクリックしてからクリックするまで (まだリスト項目内にある) 正しく動作するためです。リスト項目全体を非表示にします。何か案は?私は何を間違っていますか?