小编ifi*_*ime的帖子

如何调试jQuery嵌套的可排序可拖动元素?

第一部分允许您首先将元素拖动到可排序的div中,这样可以正常工作.然后我想让div变得可以排序,所以我可以将新元素(部分)拖到那些中.

那部分也可以正常工作,除非有时候如果你重新排序元素(较暗的元素)它不会让你把一部分放回去,直到你再次重新排序它们,或者试着把它放在其他元素之一然后回去它.

这有点难以解释,但这是一个屏幕演员:http://screencast.com/t/Ls2ksVY4Q

演示位于:http://jsfiddle.net/9MXWp/

这是相关的代码:

$(document).ready(function() {
    $('#the-grid').sortable({
        tolerance: 'pointer',
        update: function(event, ui) {
            if( $(ui.item).has('.close').length == 0 ) {
                $(ui.item).prepend('<a href="#" class="close" onclick="$(this).parent().remove();">x</a>');
            }

            $('.part-holder', ui.item).sortable({ 
                tolerance: 'pointer',
                update: function(event, ui) {
                    if( $(ui.item).has('.close').length == 0 )
                        $(ui.item).prepend('<a href="#" class="close" onclick="$(this).parent().remove();">x</a>');
                } 
            }); 

        }
    });

    $('#sidebar > ul > li.part').draggable({
        helper: 'clone',
        connectToSortable: '.part-holder',
        addClasses: false
    }); 

    $('.drag-element').draggable({
        revert: 'invalid',
        helper: 'clone',
        connectToSortable: '#the-grid',
        addClasses: false
    });

    $('#update-list').click(updateList);
});
Run Code Online (Sandbox Code Playgroud)

似乎复制问题的食谱(在FF 3.6中):

  1. 元素1 …

javascript jquery drag-and-drop jquery-ui

7
推荐指数
1
解决办法
3545
查看次数

从另一个gem覆盖gem内部的方法

好吧,我有一个我正在研究的rails gem,我希望它覆盖sprockets中的特定方法.

我想覆盖的方法是:Sprockets :: Base.digest,以便在编译应用程序的资产时,我可以将指纹从我的gem版本中删除.

我该怎么做呢?

在我的gem中,我创建了一个文件lib/sprockets/base.rb并放置以下代码:

class Sprockets::Base                                                                                                                                                                                                                                                           
  def digest
    @digest = digest_class.new.update(MyGem::VERSION)
    @digest.dup
  end
end

当我跑步时,bundle exec rake assets:precompile我得到:

undefined method 'logger=' for #<Sprockets::Environment:0x1315b040>

因此,在我看来,整个类都会以某种方式被覆盖(这会丢失它,以及其他方法),而不是仅仅覆盖一个方法.

如果我将这段代码直接包含在使用两个宝石的应用程序的rakefile中,那么事情就可以完美地运行.

ruby gem overriding ruby-on-rails ruby-on-rails-3

3
推荐指数
1
解决办法
2982
查看次数