扩展jQuery

时间:2011-07-26 13:06:43

标签: jquery jquery-plugins

我正在尝试向使用jQuery的网站添加一些现有功能(我希望draggable功能使用live())。

我发现了一些代码,但是我无法让它工作。

(function ($) {
   $.fn.liveDraggable = function (opts) {
      this.live("mouseover", function() {
         if (!$(this).data("init")) {
            $(this).data("init", true).draggable(opts);
         }
      });
   };
}(jQuery));

我在加载jQueryjQuery UI之后添加了代码,在我实际使用它之前,但是,当我尝试使用它时,我收到以下错误:

$('.myclass').liveDraggable({}) is undefined.

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:4)

您需要包含用于此工作的jQuery UI脚本(不仅仅是核心jQuery),另请参阅here

看起来这段代码来自这个SO线程,它也有一些用法示例:jQuery Drag And Drop Using Live Events

答案 1 :(得分:4)

您的代码运行正常。 $('.myclass').liveDraggable({})将返回undefined,因为没有返回语句。通常,您希望return this,以便您可以进行电话连接。

(function ($) { 
   $.fn.liveDraggable = function (opts) {
      return this.live("mouseover", function() {
         if (!$(this).data("init")) {
            $(this).data("init", true).draggable(opts);
         }
      });
   };
}(jQuery));

现在您可以使用其他jQuery方法进行链接。

$('.myclass').liveDraggable({}).live('click', function(){
  // code
});