フォームを含むLIがあります。フォームの送信時に、親LIをフェードアウトしたいのですが、運が悪かったのですが、基本的なフォームでフィドルを作成しました。終わり?
<li>
<form>
<input type='submit' value='delete'>
</form>
</li>
jQ:
$('input').click(
$(this).fadeOut();
)
フォームを含むLIがあります。フォームの送信時に、親LIをフェードアウトしたいのですが、運が悪かったのですが、基本的なフォームでフィドルを作成しました。終わり?
<li>
<form>
<input type='submit' value='delete'>
</form>
</li>
jQ:
$('input').click(
$(this).fadeOut();
)
代わりにこれを試してください:
$('input').click(function() {
$(this).closest('li').fadeOut();
});
コードに2つのエラーがあります。
$.click()
です。$(this)
このコンテキストでは、<input>
要素を参照します。最も近いものを参照する<li>
には、代わりにを使用する必要があります$.closest()
。$.parent()
要素の直接の親のみを取得するため、を使用しないでください。<li>
単に行うのではなく、現在の要素の下に要素を作成するには、代わりに次の$.fadeOut()
ようにします。
$('input').click(function() {
$(this).closest('li').slideUp();
});
これにより、要素の高さが0にアニメートされ、要素が「スライド」します。
jsFiddle(http://jsfiddle.net/uAZ5Z/9/)
タイプを「送信」ではなく「ボタン」に変更したので、同じページにとどまります。
<li>
<form>
<input type='button' value='delete'>
</form>
</li>
親の親を取得するか、最も近いliを見つけることができます。
$('input').click( function()
{
$(this).closest("li").fadeOut();
});
</ p>