0

jquery.afterを使用してdivをliに挿入する際に問題が発生しています。基本的に、アクションはli全体を削除することです...そして理由はわかりません。また、さまざまなテーブル要素で.afterを使用すると、この種の問題が発生します。これは、テーブルが破損することがわかるため、より理にかなっています。

このjsfiddleを見てください:http://jsfiddle.net/XrUtq/

私がこのようにしなければならない理由は、私が制御できない別の要素(任意の種類である可能性があります要素の)。次に、divはページ上に比較的/絶対的に配置され、後続の要素の上に配置されます。divを本文に追加する代わりに解決策が必要なため、これを行っています。ビューが変更された場合、追加された要素は、本来のコンテンツで消えるのではなく、ページに残ります。

問題を十分に明らかにしたことを願っています。私はこのようなアプローチを試しました:

if (nodeName === 'td' || nodeName === 'tr' || nodeName === 'th' || nodeName === 'tbody'){           
    popover.appendTo(editable.closest(':visible:not(tr):not(td):not(table):not(tbody)'));
}
else if(editable.is(':visible')){
    popover.after(editable);
}
else{
    $('body').append(popover);
}

しかし、これはliの現在の問題を説明していません。

ヘルプ/提案をありがとう!

4

2 に答える 2

3

少し間違った構文 (逆方向の並べ替え) を使用しています。代わりにこれを使用してください。

これを変える:

$('<div>Blabablabla</div>').after($('.editable'));

これに:

$('.editable').after('<div>Blabablabla</div>');

作業固定例

jQuery.after(CONTENT)は、選択した要素の後に提供されたコンテンツを挿入します。afterメソッドは、jQuery セレクターに追加する必要があります。コードでは、セレクターをafterメソッド内に配置していました。

.insertAfter()元の構文で機能するものを使用するつもりだったと思います。

于 2012-08-09T18:02:31.590 に答える
2

http://jsfiddle.net/XrUtq/1/

$('li').click(function(){
    $('.editable').after('<div>Blabablabla</div>');
});

jQuery.after().editableは、一致したセット (アイテム)内の各要素の後にターゲット要素 (div) を挿入します。使用していた構文は、同様のことを行うための代替方法であるjQuery用です。.insertAfter()

$('li').click(function(){
    $('<div>Blabablabla</div>').insertAfter('.editable');
});
于 2012-08-09T18:03:14.833 に答える