创建一个 jQuery 插件所推荐的方法是,先创建一个允许使用美元符号 ($) 的包装器函数。在默认情况下,美元符号可能与其他 JavaScript 框架发生冲突,如果将插件包装在一个函数中,就不会出现冲突。所以推荐使用下面代码创建jQuery插件:
[html]
view plain
copy
- (function($) {
- $.fn.accordion = function() {
- // 添加插件代码
- };
- })(jQuery);
上面代码,jQuery 关键字被应用到包装器函数中,这允许您在插件中使用美元符号,就像使用 fn 属性时那样。包装器函数就绪后,就可以在整个插件的任何地方使用美元符号代替 jQuery 关键字,不会干扰其他第三方插件。
插件代码
[html]
view plain
copy
- (function($) {
- $.fn.accordion = function(options) {
- return this.each(function() {
- var dts = $(this).children('dt');
- dts.click(onClick);
- dts.each(reset);
- });
- function onClick() {
- $(this).siblings('dt').each(hide);
- if($(this).next().is(":hidden")){
- $(this).next().slideDown('fast');
- return false;
- }
- if($(this).next().is(":visible")){
- $(this).next().slideUp('fast');
- return false;
- }
- }
- function hide() {
- $(this).next().slideUp('fast');
- }
- function reset() {
- $(this).next().hide();
- }
- }
- })(jQuery);
页面代码
[html]
view plain
copy
- <!DOCTYPE HTML>
- <html>
- <head>
- <title>自定义你的插件</title>
- <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
- <script src="aa.js"></script>//插件js
- <script>
- $(function(){
- //调用你的自定义插件
- $('dl#my-accordion').accordion();//调用插件
- });
- </script>
- </head>
- <body>
- <dl class="accordion" id="my-accordion">
- <dt>Section 1</dt>
- <dd>Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam.</dd>
- <dt>Section 2</dt>
- <dd>Vestibulum a velit eu ante scelerisque vulputate.</dd>
- <dt>Section 3</dt>
- <dd>Nam mi. Proin viverra leo ut odio. Curabitur malesuada.</dd>
- <dt>Section 4</dt>
- <dd>Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc.</dd>
- </dl>
- </body>
- </html>
效果如下
这就是我们想要的效果