javascript - Number 作为默认的 jquery 插件选项

标签 javascript jquery jquery-plugins settings

我有一个小问题。 我设置了一些 jquery 插件默认设置:

defaults = {
    insdElmnts: 'img',
    cursorDistance : 10
};
function plugin (options) {
    this.settings = $.extend({}, defaults, options);
}

我尝试将这个与 cursorDistance 一起使用,如下所示:

_mark.css({
    left: 10 - this.settings.cursorDistance,
    top: 10 - this.settings.cursorDistance
});

但我有一些错误:无法读取未定义的属性“cursorDistance”。 有什么不对吗?我需要添加一些单位吗?谢谢帮助。

最佳答案

1) 如果您开发 jquery 插件 - 其中的“this”表示“jquery 集合”。当你调用 $(".element_class").plugin(); 时- 在插件函数内部,这将等于 $(".element_class")。要访问集合的每个元素 - 您应该使用 .each()。

2) 使用.data()方法将一些数据与html元素关联起来。插件示例:

(function($){  
   var defaults = {
       insdElmnts: 'img',
       cursorDistance : 10
   };

   $.fn.pluginName= function(options) {
      //here "this" means "jquery collection"
      return this.each(function () {
          //here "this" means "html element"
          var el = $(this);    
          el.data("settings", $.extend({}, defaults, options));
          /** do here something that you need **/
      });  
   };
})(jQuery);

3)使用.data方法从插件外部提取数据:

_mark.css({
    left: 10 - _mark.data("settings").cursorDistance,
    top: 10 - _mark.data("settings").cursorDistance
});

但最好尝试编写好的插件来自行完成所有需要的工作。

关于javascript - Number 作为默认的 jquery 插件选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19966037/

相关文章:

jquery 插件无法访问插件定义中引用的对象

javascript - Jquery each() : variable in callback always has last value?

javascript - 使 jQuery 字符循环插件不引人注目的最佳解决方案是什么?

javascript - 如何使用 jquery 删除除最后 2 个之外的所有类 div?

javascript - 如何在 translate3d css 中写入 javascript 值

javascript - 为什么我不能创建具有多个子节点的 ParentNode?

javascript - 监听新注册的事件处理程序

带有大图像的 jQuery 裁剪工具

javascript - 脚本无法从Node.js应用程序中的EJS文件运行

javascript - 检测 Chrome 中被阻止的弹出窗口