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

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

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

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

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

$( "#c_absent .inner-drop" ).droppable({
        drop: function( event,ui ) {
            ui.draggable.trigger('inout.leave');
        }
    });


  Template.loftie_detail.events = {
      'inout.leave': function (e) {
          Lofties.update({_id:this._id},{$set: {present: 'N' }});
      }
  };

因此,我的想法是对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显示方法.

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

Template.myDraggableItem.events({
    'mouSEOver .workItem' : function() {
        $(this._id).draggable();
    }
});

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

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

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

原文链接:https://www.f2er.com/jquery/178396.html

猜你在找的jQuery相关文章