13693261870
2022-09-16 354b3dbfbffb3df45212a2a44dbbf48b4acc2594
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
* tablesaw: A set of plugins for responsive tables
* Button component
* Copyright (c) 2013 Filament Group, Inc.
* MIT License
*/
 
;(function( $ ) {
    var pluginName = "tablesawbtn",
        methods = {
            _create: function(){
                return $( this ).each(function() {
                    $( this )
                        .trigger( "beforecreate." + pluginName )
                        [ pluginName ]( "_init" )
                        .trigger( "create." + pluginName );
                });
            },
            _init: function(){
                var oEl = $( this ),
                    sel = this.getElementsByTagName( "select" )[ 0 ];
 
                if( sel ) {
                    $( this )
                        .addClass( "btn-select" )
                        [ pluginName ]( "_select", sel );
                }
                return oEl;
            },
            _select: function( sel ) {
                var update = function( oEl, sel ) {
                    var opts = $( sel ).find( "option" ),
                        label, el, children;
 
                    opts.each(function() {
                        var opt = this;
                        if( opt.selected ) {
                            label = document.createTextNode( opt.text );
                        }
                    });
 
                    children = oEl.childNodes;
                    if( opts.length > 0 ){
                        for( var i = 0, l = children.length; i < l; i++ ) {
                            el = children[ i ];
 
                            if( el && el.nodeType === 3 ) {
                                oEl.replaceChild( label, el );
                            }
                        }
                    }
                };
 
                update( this, sel );
                $( this ).bind( "change refresh", function() {
                    update( this, sel );
                });
            }
        };
 
    // Collection method.
    $.fn[ pluginName ] = function( arrg, a, b, c ) {
        return this.each(function() {
 
        // if it's a method
        if( arrg && typeof( arrg ) === "string" ){
            return $.fn[ pluginName ].prototype[ arrg ].call( this, a, b, c );
        }
 
        // don't re-init
        if( $( this ).data( pluginName + "active" ) ){
            return $( this );
        }
 
        // otherwise, init
 
        $( this ).data( pluginName + "active", true );
            $.fn[ pluginName ].prototype._create.call( this );
        });
    };
 
    // add methods
    $.extend( $.fn[ pluginName ].prototype, methods );
 
}( jQuery ));