1

フォームを含むLIがあります。フォームの送信時に、親LIをフェードアウトしたいのですが、運が悪かったのですが、基本的なフォームでフィドルを作成しました。終わり?

http://jsfiddle.net/uAZ5Z/

<li>
<form>
    <input type='submit' value='delete'>
</form>
</li>

jQ:

 $('input').click(
     $(this).fadeOut();
 )
4

2 に答える 2

5

代わりにこれを試してください:

$('input').click(function() {
    $(this).closest('li').fadeOut();
});
​

コードに2つのエラーがあります。

  1. 内に関数(匿名かどうか)の呼び出しが必要$.click()です。
  2. $(this)このコンテキストでは、<input>要素を参照します。最も近いものを参照する<li>には、代わりにを使用する必要があります$.closest()$.parent()要素の直接の親のみを取得するため、を使用しないでください。

<li>単に行うのではなく、現在の要素の下に要素を作成するには、代わりに次の$.fadeOut()ようにします。

$('input').click(function() {
    $(this).closest('li').slideUp();
});

これにより、要素の高さが0にアニメートされ、要素が「スライド」します。

于 2012-04-25T19:29:00.477 に答える
2

jsFiddle(http://jsfiddle.net/uAZ5Z/9/

タイプを「送信」ではなく「ボタン」に変更したので、同じページにとどまります。

<li>
    <form>
        <input type='button' value='delete'>
    </form>
</li>​

親の親を取得するか、最も近いliを見つけることができます。

$('input').click( function()
{
    $(this).closest("li").fadeOut();
});

</ p>

于 2012-04-25T19:33:45.420 に答える