Javascript jQuery插件编写
你知道为什么这个基本例子不起作用吗 您需要一个选择器:Javascript jQuery插件编写,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,你知道为什么这个基本例子不起作用吗 您需要一个选择器: $(document).testPlugin(); $(window).testPlugin(); 演示: 因为您将插件添加到了fn名称空间,而不是$名称空间。因此,$().testPlugin()可以工作,但$.testPlugin()不能 如果要污染$命名空间,可以执行以下操作: (function( $ ){ $.testPlugin = function( options ) { alert('hi')
$(document).testPlugin();
$(window).testPlugin();
演示:
因为您将插件添加到了
fn
名称空间,而不是$
名称空间。因此,$().testPlugin()
可以工作,但$.testPlugin()
不能
如果要污染$
命名空间,可以执行以下操作:
(function( $ ){
$.testPlugin = function( options ) {
alert('hi');
};
})( jQuery );
$.testPlugin();
我遵循的经验法则是:当它与DOM无关(如ajax)时使用
$。
,当它对用选择器抓取的元素(如DOM/XML元素)进行操作时使用$.fn.
。@Chad,说得好+1。我也很喜欢阿拉丁。@Chad+1。优秀、清晰的解释如果我的插件不是在DOM上运行,而是在对象上运行,那么使用$
名称空间是最佳实践吗?让我们说<编码>num=5我的插件就像一个正方形。所以$.square(num)
@jon在这种情况下,我会做$.square
,因为jQuery包装的Number
不是很有用……但是如果它像对象{}
或数组[]
然后我可以使用$.fn.
因为许多jQuery函数对这些类型都很有用,我可能会将其包装在引擎盖下。非常感谢。如果我确实有一个对象,并且函数更复杂,该怎么办。说data={numbers:[1,2,3,4,5],otherstuff:[]}
我想做这样的链接$(data).process().filterPrimeNumbers().sortBy('desc')代码>?甚至<代码>x=$(数据).process();x、 sortBy(“asc”)代码>
(function( $ ){
$.testPlugin = function( options ) {
alert('hi');
};
})( jQuery );
$.testPlugin();