我使用Aptana编写JS,我最近安装了jQuery bundle(主要用于代码完成,但也用于新的很酷的东西,我不知道)
因此,当我输入ready
并按下Ctrl + <Space>
时,我得到两个选项,document ready
和document ready (safe)
选择其中一个将自动分别放置$(document).ready(function(){})
或jQuery(document).ready(function($){})
。
但这无关紧要。当我使用$(someElement).cl
时,代码完成功能为我提供了click
选项,当我选择它时,它会为我放下以下代码:
$(someElement).click(function() {
${0:
}});
(这是相关的。我以后再谈)
同样,我试图编写一个插件,我输入plugin
并按下Ctrl + <Space>
并选择选项plugin (method)
,我得到以下代码:
;(function($) {
}
$.fn.pluginName = function(options) {
var opts = $.extend({}, $.fn.pluginName.defaults, options);
return this.each(function() {
var $this = $(this);
${6:
var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
}
});
// private function for debugging
function debug($obj) {
if (window.console && window.console.log) {
window.console.log($obj);
}
}
};
// default options
$.fn.pluginName.defaults = {
defaultOne:true,
defaultTwo:false,
defaultThree:'yay!'
};
})(jQuery);
首先,据我所知,编写插件的常见方法是这样的
(function($) {
$.fn.plugin = function(args) {
//...
}
})(jQuery);
我可以将defaults
定义为$.fn.plugin.defaults = {...}
或var defaults = {...}
在我的插件内,并在我的插件中扩展{}
与defaults
和args
。这就是我所熟悉的。
:
- 为什么Aptana jQuery bundle在一开始就放了一个
- 为什么
function($){}
在$.fn.pluginName
之前关闭 - 最重要的是,
$.click()
示例中的${0:
和plugin (method)
示例中的${6:
是什么? - 还有,
$.meta
和$this.data()
到底是什么?
;
?这一切都很令人困惑(然而,奇怪的令人兴奋)…
- 自调用函数前面的分号是针对先前可能未终止的代码:http://debuggable.com/posts/how-to-write-jquery-plugins: 4 f72ab2e - 7310 - 4 - a74 - 817 - 0 - a04cbdd56cb
- 我想象他们在
$.fn.pluginName
之前关闭function($){}
,以便$.fn.pluginName
在自调用的function($){}
范围之外可用 - 找不到
${number: var...
符号的答案-希望有人能帮助我们。我唯一能在jQuery中找到的使用${}
的是模板:表达式${variable_name}在jQuery中的含义是什么? $this.data()
将只返回this.each(function(){})
应用于的元素的内容:http://api.jquery.com/jQuery.data/。假设你有几个p
与'myPars'类,你有:$(文档)时(函数(){$ (' .myPars ') .pluginName ();})
然后该类的每个p
将获得该函数的副本,$this.data()
将包含当前为"this"的p
的内容
我不是jQuery专家,所以我希望周围有更有见识的人来帮助我解决一些我不能很好地解释的问题。