zoukankan      html  css  js  c++  java
  • jquery 拓展

    1. 概述

      jquery允许拓展自定义的方法, 绑定到$.fn对象上,

      编写一个jQuery插件的原则:

    1. $.fn绑定函数,实现插件的代码逻辑;
    2. 插件函数最后要return this;以支持链式调用;    
    3. 插件函数要有默认值,绑定在$.fn.<pluginName>.defaults上;
    4. 用户在调用时可传入设定值以便覆盖默认值。

    2. example

    <html>
    <body>
    <div id="test-highlight1">
        <p>什么是<span>jQuery</span></p>
        <p><span>jQuery</span>是目前最流行的<span>JavaScript</span>库。</p>
    </div>
    <script src="jquery-3.1.0.js"></script>
    <script type="text/javascript">
    $(function(){
      'use strict';
      
      (function(){
         $.fn.highlight = function (options) {
         
             var opts = $.extend({}, $.fn.highlight.defaults, options);
            // this已绑定为当前jQuery对象:
            this.css('backgroundColor', opts.backgroundColor).css('color', opts.color);
            return this;
       }
    
         $.fn.highlight.defaults = {
            'backgroundColor' : '#d85030',
            'color' : '#fff8de'
         };   
         
         $.fn.highlight.defaults.backgroundColor = '#659f13';
         $.fn.highlight.defaults.color = '#f2fae3';
         
      
         $("#test-highlight1 span").highlight();

    $('#test-highlight1 span').highlight({
             color : '#dd1144'
         }); })(); });
    </script> </body> </html>

    3.  使用过滤 针对特定元素的拓展

          类似submit方法只能作用在form上,我们也可以自定义针对指定dom元素使用的方法。

          jquery的filter这时派上了用场。

    example

    <html>
    <body>
    <div id="test-external">
        <p>如何学习<a href="http://jquery.com">jQuery</a>?</p>
        <p>首先,你要学习<a href="/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000">JavaScript</a>,并了解基本的<a href="https://developer.mozilla.org/en-US/docs/Web/HTML">HTML</a>。</p>
    </div>
    <script src="jquery-3.1.0.js"></script>
    <script type="text/javascript">
    $(function(){
      'use strict';
      
      
      (function(){
        $.fn.external = function () {
            return this.filter('a').each(function(){
                var a = $(this);
                var url = a.attr('href');
                if(url && (url.indexOf('http://')===0 || url.indexOf('https://')===0)){
                    a.attr('href', '#0')
                     .removeAttr('target')
                     .append('<i class="uk-icon-external-link"></i>')
                     .click(function(){
                        if(confirm("确认跳转到"+url)){
                            window.open(url);
                        }
                      });
                }
          
            });
            
        }
    
        $('#test-external a').external();
         
      })();
    });
    
    </script>
    
    </body>
    </html>

        

  • 相关阅读:
    Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能
    android 网络异步加载数据进度条
    在WebView中加载HTML页面时显示进度对话框的方法
    Java基础知识总结之IO流
    计算机网络之网络协议
    Java中hashCode的作用
    一篇很好的学习查看Java源代码的文章
    JavaScript 客户端JavaScript之 脚本化文档
    JavaScript 超类与子类 继承
    JavaScript 类、构造函数、原型
  • 原文地址:https://www.cnblogs.com/rocky-fang/p/5783956.html
Copyright © 2011-2022 走看看