2

eljQuery プラグインを適用しようとしているため、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)が必要です。

他の解決策はありますか?

4

1 に答える 1