如何正确绑定流星中的jquery ui行为?

前端之家收集整理的这篇文章主要介绍了如何正确绑定流星中的jquery ui行为?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用通过Meteor订阅填充的jQuery UI的.draggable()来创建一组可拖动的DOM对象.我提出的代码看起来像
  1. Meteor.subscribe('those_absent',function() {
  2. $( "li.ui-draggable" ).draggable( { revert: "invalid" } );
  3. });
  4. Meteor.subscribe('those_present',function() {
  5. $( "li.ui-draggable" ).draggable( { revert: "invalid" } );
  6. });

这些对应于一些Meteor.publish()调用,因此只要集合发生更改,就会附加.draggable()行为.至少,这是我的意图.

然而,它只能工作一次 – 一旦这些< li>中的一个被拖放,那么它们就不再可拖动了.

当对象被删除时,我正在触发一个附加到项目模板的自定义事件,就像这样

  1. $( "#c_absent .inner-drop" ).droppable({
  2. drop: function( event,ui ) {
  3. ui.draggable.trigger('inout.leave');
  4. }
  5. });
  6.  
  7.  
  8. Template.loftie_detail.events = {
  9. 'inout.leave': function (e) {
  10. Lofties.update({_id:this._id},{$set: {present: 'N' }});
  11. }
  12. };

因此,我的想法是对drop上的集合的这种更改应该通过pub / sub进程传播并重新运行上面的.draggable()行.但它似乎没有.

完整的代码可以在这里看到https://github.com/sbeam/in-out/blob/master/client/inout.js,应用程序在http://inout.meteor.com/现场(还有一些其他可能无关的问题,项目随机丢失值或从UI中消失)

因此,如果我对Meteor中pub / sub的工作原理有所了解,那么最好知道.或者有没有一种更有效的方法来实现这种无需行为的UI行为绑定?

解决方法

我在我的应用程序中实现此方法方法是使用@lashleigh显示方法.

我有一个模板事件,使用这样的代码进行侦听:

  1. Template.myDraggableItem.events({
  2. 'mouSEOver .workItem' : function() {
  3. $(this._id).draggable();
  4. }
  5. });

然后我就像这样听一下这个拖车.

  1. $('body').on('dragstop','.myDraggableItem',function (e) {
  2. // Update the collection with the new position
  3. };

您可以在aduno.meteor.com看到使用此代码的应用

猜你在找的jQuery相关文章