jQuery插件创作

时间:2013-03-13 18:35:02

标签: javascript jquery jquery-plugins

知道为什么这个基本示例不起作用?

http://jsfiddle.net/Kq6pz/

(function( $ ){

  $.fn.testPlugin = function( options ) {  
        alert('hi');
  };
})( jQuery );

$.testPlugin();

2 个答案:

答案 0 :(得分:5)

因为您将插件添加到fn命名空间而不是$命名空间。因此$().testPlugin()会有效,但$.testPlugin()不会。

如果您想污染$命名空间,您可以这样做:

(function( $ ){

  $.testPlugin = function( options ) {  
        alert('hi');
  };
})( jQuery );

$.testPlugin();

我遵循的经验法则是:当它不与DOM相关时使用$.(如ajax),并在对使用选择器抓取的元素(如DOM / XML元素)进行操作时使用$.fn. )。

答案 1 :(得分:1)

你需要一个选择器:

$(document).testPlugin();
$(window).testPlugin();

样本: http://jsfiddle.net/dirtyd77/Kq6pz/1/