jQuery UI 还不是 Meteor 的“包”,即使它最终成为一个“包”,也会有更新的 jQuery 和 jQuery UI 版本,以及其他可能想要与 Meteor 一起使用的 jQuery 插件。会出现各种各样的问题:
- 通过标签加载
<script>
,或者将js文件放在客户端或根目录中? - 如果从 CDN 采购脚本有什么问题吗?最好在本地存储(例如在“公共”目录中)?
- 由于
$(document).ready()
可能在渲染模板之前调用,那么调用通常可能从 .ready() 调用的各种设置函数的最佳位置在哪里?是否应该调用它们Templates.<Name>.rendered
,以便如果在模板渲染期间 DOM 发生变化,各种事件处理程序将重新附加到新的 DOM 节点?这是否会导致旧处理程序的内存泄漏,这些处理程序仍然存在以处理已从 DOM 中删除的虚拟节点? - 如果您尝试基于来自 jQuery UI 小部件的事件回调来更改模型数据(并且 Meteor 模板事件本身不支持该事件,例如“click”或“dblclick”),那么识别在回调期间与相关小部件关联的集合数据?您是否应该在 Template..rendered 期间将对象的 _id 加载到 DOM 中,然后在关联的 jQuery UI 事件处理程序期间将其读回?还有其他方法吗?
请注意,根据这个问题,问题自 0.5.0 以来发生了变化,因此一些现有的类似 StackOverflow 问题可能已过时(也,也,也)。
如果一个例子可以帮助你回答,这里是一个工作(?)Meteor 项目,它集成了 jQuery Draggable 和 Droppable: http ://products-jqueryui.meteor.com/ 与Source Here 基于Tutorial Here
(在我的问题中“安全地”,我的意思是不会在 Meteor 框架中造成破坏性错误(或导致 Meteor 破坏 jQuery/jQuery UI),并且尽可能高效:避免过度的 DOM 操作/渲染,过多的客户端/服务器流量,或导致内存泄漏。)