0

DOM要素を切り離して別のDOM要素に追加しようとしています。しかし、jQueryは黙って何もすることを拒否します。

つまり、この要素を選択する方法がわからないため、文字列セレクターを使用できません。最初の親に(「appendTo」を介して)最初にいくつかのhtmlコードを追加したときに、それを変数に格納しました。

this.element = $(my_html_string).appendTo(some_dom_parent);

そして、それはうまくいきます。期待どおりに機能していないコードは次のとおりです。

this.transferTo = function(dom_parent)
{
    $(this.element).detach()
    $(this.element).appendTo(dom_parent);
}

何が起こるか:

  • 要素はどこからでも削除されません。
  • 要素は新しい親に追加されます。
  • 以前は、バインドクリックイベントが両方の要素でトリガーされていました。
  • そのクリックイベントは、要素にポップアップダイアログを追加します。どちらをクリックしても、常に新しい親の要素に追加されます。

次のようなハードコードされたデタッチを試しました。

$('#very_specific_id').detach()

...そしてそれは機能します。しかし、私はIDを配置していないので、これを行うには非常に悪い方法のように思えます。

したがって、問題は、他のすべての人のように$( "。query")を使用する代わりに、jQueryDOM要素を保存してそこから.detachを使用しようとしているという事実に依存しているようです。

アイデア?回避策?ありがとう!

4

1 に答える 1

0

これを変更してみてください:

this.transferTo = function(dom_parent)
{
    $(this.element).detach()
    $(this.element).appendTo(dom_parent);
}

これに:

this.transferTo = function(dom_parent)
{
    var $thisElement = $(this.element);
    $thisElement.detach()
    $thisElement.appendTo(dom_parent);
}
于 2012-07-17T02:48:47.503 に答える