私はこの.after()
にチェーンされた.fadeIn()
アニメーションを探していましたが、これはそれを行う方法ではありません。助言がありますか?jQuery fadeIn()after()
$(clicked_item).parent().parent().parent().after(str).fadeIn("slow");
私はこの.after()
にチェーンされた.fadeIn()
アニメーションを探していましたが、これはそれを行う方法ではありません。助言がありますか?jQuery fadeIn()after()
$(clicked_item).parent().parent().parent().after(str).fadeIn("slow");
.insertAfter()
を使用してください。
$(str)
.hide()
.insertAfter($(clicked_item).parent().parent().parent())
.fadeIn("slow");
@ EmreErkanの回答に加えて、コードを最小化してみてください。あなたはparent()
3回を使用するのではなく、後にテキストを追加したいid
またはDIVのclass
をparents()
を使用して選択します。
$(str)
.hide()
.insertAfter($(clicked_item).parents(selector))
.fadeIn("slow");
EDIT:としては、代わりにclosest()
を使用することをお勧めします、コメントで指摘単一の要素をターゲットにしている場合はparents()
となります。通常、セレクタを使用してparents()
を使用しています。
'.closest()'は複数の一致する親ではなく1つのオブジェクトの後にあるので、 '.parents()'よりも優れていますが、このコンセプトを複数の 'parent()'誰かがHTMLレイアウトにもう1つのdivを追加/削除すると、はるかに壊れにくいので呼び出します。 – jfriend00
$ .fn.after()は、実行された要素(この場合は$(clicked_item).parent()。parent()。parent())を返します。それがフェードインしたい要素なら、私は何の問題も見ません。あなたは、フェードイン(にしたい場合は)「STR」要素の代わりに、私はこれを行うことをお勧めしたい:
$(str).insertAfter($(clicked_item).parent().parent().parent()).fadeIn('slow');
の数を変更する必要はありません要素の特定の親を得るための、より安定した方法
$(clicked_item).parents('p').eq(0)
変更あなたが到達したい要素に「P」:.parentは()あなたが変更した場合、HTMLはタグ名と一緒に)(.parentsを使用することです呼び出します。
編集:woops、遅すぎます。
フェーディン効果がまだ働きません – ThinkingInBits
私の答えが更新されました。新しく作成された要素に '.hide()'を追加しました。再試行する。 –
最新の編集ができます。ありがとう:D – ThinkingInBits