• JQuery插件写法(以Tab插件为例子)


    一.前言

      把JQuery某个功能封装成插件是为了能更方便的重用,提供效率。

    二.效果

            

      支持IE6和最新的chrome浏览器。

    三.插件代码

    jquery.tab.js
    (function($) {
    //2010-11-26
    $.fn.extend({
    //Tab插件名称
    XQHTab: function(options) {
    //默认值
    var defaults = {
    tabSelected:
    "tab_selected",
    tabWidth:
    "100%",
    autoHeight:
    "true"
    };

    var options = $.extend(defaults, options);

    $(
    this).css("width", options.tabWidth);

    //选项卡 this指通过当前选择器获取的JQuery对象
    var tab = $(".tab_menu ul li", this);
    //选项内容
    var tabContent = $(".tab_box > div", this);

    if (options.autoHeight != "true") {
    tabContent.css(
    "height", options.autoHeight);
    }

    //单击选项卡
    tab.click(function() {
    $(
    this).addClass(options.tabSelected).siblings().removeClass(options.tabSelected);
    var curIndex = tab.index(this);
    tabContent.eq(curIndex).show().siblings().hide();
    });

    //return this使JQuery方法可链
    return this;
    }
    });
    })(jQuery);

       关键代码都加注释了,应该不难理解。

    四.css代码

    jquery.tab.css
    .tab{ width:98%;}
    .tab_menu ul
    { width:98%; list-style:none;}
    .tab_menu li
    { list-style:none; float:left; margin-right:4px; display:block; border-right:#4488BB solid 1px;border-left:#4488BB solid 1px; border-top:#4488BB solid 1px; cursor:pointer; color:#000; height:20px; width:auto; padding:5px;}
    .tab_box
    { border:solid #4488BB 1px; padding:4px; height:auto; width:98%; float:left;}
    .tab_selected
    { background:#4488BB;}
    .tab_displayNone
    { display:none;}
    li
    { background:#EEEEEE; list-style:none;}

    五.插件使用方法

    代码
    <script type="text/javascript">
    $(
    function() {
    $(
    ".tab").XQHTab();
    });
    </script>

    <div class="tab">
    <div class="tab_menu">
    <ul>
    <li class="tab_selected">JQuery</li>
    <li>ExtJs</li>
    <li>Sliverlight</li>
    </ul>
    </div>
    <div class="tab_box">
    <div>Hello JQuery!</div>
    <div class="tab_displayNone">Hello ExtJs!</div>
    <div class="tab_displayNone">Hello Sliverlight!</div>
    </div>
    </div>

    可以通过设置autoHeight属性来控制内容的高度默认为true自动适应高低,tabWidth来控制tab的宽度,默认为100%

    六.总结

      由于以前用户几乎清一色的用IE6,或者用Ext或Sliverlight开发,使得对浏览器兼容方面几乎不懂。经过这次自己写插件在IE6和chorme上的测试,刚开始在IE6上都正确显示,但跑到chrome上样式就走样了。经过查询,原来是浮动的关系。

  • 相关阅读:
    Intellij IDEA创建Maven Web项目<转>
    Spring事件监听Demo
    maven打包源码<转>
    枚举类转成json
    Java多线程编程中Future模式的详解<转>
    细数JDK里的设计模式<转>
    设计模式-观察者模式(下)<转>
    Sqlserver自定义函数Function
    sqlSQL2008如何创建定时作业
    JSON 序列化和反序列化——JavaScriptSerializer实现
  • 原文地址:https://www.cnblogs.com/xqhppt/p/1889605.html
Copyright © 2020-2023  润新知