我需要知道el
视图中的是否已附加到 DOM,因为我正在尝试应用 jQuery 插件,但该插件要求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)
的。
还有其他解决方案吗?