0

DOM の別の位置に追加 (追加) したい非表示の div があります。私が持っているコードは期待どおりに機能していません。

$('[class*="time-span"]').on('click', function() {

    var modelPanel = $('.model-detail-panel');

    modelPanel.contents().wrap('<div class="model-detail-panel" id="model-detail">').insertAfter('.timeline');
    modelPanel.slideToggle('fast', function() {
        $('html,body').animate({
            scrollTop: $(this).offset().top
        }, 500);
    });
});

div 'model-detail-panel' のコンテンツは正しい場所に挿入されていますが、実際の周囲の div は挿入されていません。これはなぜであり、これを達成するために私が使用した最も適切な方法は何ですか?

前もって感謝します...

4

3 に答える 3

1

問題は、wrap()メソッドが、新しく作成されたラッピング要素ではなく、ラップされた要素を返すことです。したがって、次を使用する必要がありますparent()

modelPanel.contents().wrap('<div class="model-detail-panel" id="model-detail">').parent().insertAfter('.timeline');

参考文献:

于 2012-10-15T14:55:16.003 に答える
0
var wrapped = $('<div class="model-detail-panel" id="model-detail/">').insertAfter('.timeline')
wrapped.append(model.contents)
于 2012-10-15T14:57:24.717 に答える
0

他の連鎖メソッドとの一貫性を保つために、wrap()は、ラッパー要素ではなく、呼び出された jQuery オブジェクトを返します。

操作にラッパー要素を含めるために、parent()を結果に適用できます。insertAfter()

modelPanel.contents().wrap(
    '<div class="model-detail-panel" id="model-detail">'
).parent().insertAfter('.timeline');
于 2012-10-15T14:55:00.033 に答える