el
jQuery プラグインを適用しようとしているため、View 内の が DOM にアタッチされているかどうかを知る必要がありますが、プラグインでは がel
最初に DOM にある必要があります。
jQuery 要素が DOM にあるかどうかを確認するにはどうすればよいですか? に触発され ました。私はこれを機能させます:
render : function() {
...
if (this.$el.closest('html').length) // test if in DOM
this.$el.someJqueryPlugin();
return this;
}
また、el が DOM に挿入された直後に、このビューの所有者が「onshow」をトリガーする必要があります。これは実行可能ですが、ちょっと不器用です。
私が考えることができる別の解決策は、これを行うことです:
var el = $('<div>').appendTo(somewhereInsideDOM);
var view = new view(el:el);
この場合、el は常に DOM にアタッチされ、この方法ではあまり扱いにくくなりますが、el の操作は DOM の操作を意味するという欠点があります。最後に、この方法では、this.className
が尊重されません。追加.addClass(this.className)
が必要です。
他の解決策はありますか?