jquery - 扩展 jQuery

标签 jquery jquery-plugins

我正在尝试向使用 jQuery 的网站添加一些现有功能(我希望获得与 live() 一起使用的 draggable 功能>).

我找到了一些可以实现此目的的代码,但我无法使其正常工作。

(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.

有人可以帮忙吗?

最佳答案

你的代码工作正常。 $('.myclass').liveDraggable({}) 将返回 undefined 因为没有 return 语句。通常,您希望返回此,以便可以链接调用。

(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
});

关于jquery - 扩展 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6830445/

相关文章:

jQuery v3.1.1 - 窗口加载

javascript - 创建类似于 Google Analytics 的分析 map

jquery - 使用 jQuery 设置行高动画时出现奇怪的结果

php - 使用 jquery 时,表单字段未发布到 php 文件

javascript - 这段代码中的函数是如何被调用的?

jquery - 将 Jquery 插件添加到 Backbone + require.js 代码

jquery - 使用 Sticky Kit jQuery 插件,但不知道如何使用 'offset_top' 选项?

jquery - 禁用在 Jquery Multiselect 中检查的最后一个选项

javascript - jquery.couchdb.js Ajax 成功/错误未被调用

javascript - jQuery 函数不适用于克隆元素