如何将bones.js事件绑定到JQuery UI对话窗口?

问题描述 投票:1回答:4

我对belimber.js还是很陌生,但是我们开始在前端使用越来越多的JS,我想使用一些框架来提供代码结构-骨干似乎可以满足我们的需求。

因此从a very simple test app开始,它使用jquery-ui启动对话窗口。我遇到的问题是,由于jquery-ui在主干使用的原始模板周围添加了包装器DIV,因此事件不再触发。

我不想使用jquery-ui事件模型,因为我只想使用一个-我如何将主干的绑定到这个新结构上?

jquery-ui backbone.js
4个回答
1
投票

似乎对_.template()的调用实际上是在额外的div中进行包装。绑定了事件的父div留在#well后面。一个简单的解决方法是在获取具有模型类ID的元素的结果上调用.parent()。例如,请参见here

_文档中有更多的信息可能也可以进一步阐明该问题。


1
投票

确定-在该项目结束时,我终于意识到我没有回答这个问题。当您使用JQueryUI创建.dialog时,会发生实际的情况,它实际上分离了原始DOM元素,并将其移至包装在其自己的JQueryUI标记中的DOM的底部,以将其变成对话框。

由于Backbone视图的元素现在已移动,因此就其自身的“视图”而言,Backbone不会拾取任何触发的事件。

所以您要做的就是重新分配视图的元素:

var dlg = this.$("#dialogue-properties").dialog({ ..});
this.setElement(dlg);

this是视图。这是在initialize方法中完成的


0
投票

您可以在视图中创建div包装器,并对其内容进行模态化,如here (first part of the post)所述>


0
投票

cocovan

© www.soinside.com 2019 - 2024. All rights reserved.