我有一个小问题。 我设置了一些 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/