Вход Регистрация
Файл: ui/development-bundle/demos/widget/default.html
Строк: 181
<?php
<!doctype html>
<
html lang="en">
<
head>
    <
meta charset="utf-8">
    <
title>jQuery UI Widget - Default functionality</title>
    <
link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
    <
script src="../../jquery-1.9.0.js"></script>
    <
script src="../../ui/jquery.ui.core.js"></script>
    <
script src="../../ui/jquery.ui.position.js"></script>
    <
script src="../../ui/jquery.ui.widget.js"></script>
    <
script src="../../ui/jquery.ui.button.js"></script>
    <
link rel="stylesheet" href="../demos.css">
    <
style>
    .
custom-colorize {
        
font-size20px;
        
positionrelative;
        
width75px;
        
height75px;
    }
    .
custom-colorize-changer {
        
font-size10px;
        
positionabsolute;
        
right0;
        
bottom0;
    }
    </
style>
    <
script>
    $(function() {
        
// the widget definition, where "custom" is the namespace,
        // "colorize" the widget name
        
$.widget"custom.colorize", {
            
// default options
            
options: {
                
red255,
                
green0,
                
blue0,

                
// callbacks
                
changenull,
                
randomnull
            
},

            
// the constructor
            
_create: function() {
                
this.element
                    
// add a class for theming
                    
.addClass"custom-colorize" )
                    
// prevent double click to select text
                    
.disableSelection();

                
this.changer = $( "<button>", {
                    
text"change",
                    
"class""custom-colorize-changer"
                
})
                .
appendTothis.element )
                .
button();

                
// bind click events on the changer button to the random method
                
this._onthis.changer, {
                    
// _on won't call random when widget is disabled
                    
click"random"
                
});
                
this._refresh();
            },

            
// called when created, and later when changing options
            
_refresh: function() {
                
this.element.css"background-color""rgb(" +
                    
this.options.red +"," +
                    
this.options.green "," +
                    
this.options.blue ")"
                
);

                
// trigger a callback/event
                
this._trigger"change" );
            },

            
// a public method to change the color to a random value
            // can be called directly via .colorize( "random" )
            
random: function( event ) {
                var 
colors = {
                    
redMath.floorMath.random() * 256 ),
                    
greenMath.floorMath.random() * 256 ),
                    
blueMath.floorMath.random() * 256 )
                };

                
// trigger an event, check if it's canceled
                
if ( this._trigger"random"eventcolors ) !== false ) {
                    
this.optioncolors );
                }
            },

            
// events bound via _on are removed automatically
            // revert other modifications here
            
_destroy: function() {
                
// remove generated elements
                
this.changer.remove();

                
this.element
                    
.removeClass"custom-colorize" )
                    .
enableSelection()
                    .
css"background-color""transparent" );
            },

            
// _setOptions is called with a hash of all options that are changing
            // always refresh when changing options
            
_setOptions: function() {
                
// _super and _superApply handle keeping the right this-context
                
this._superApplyarguments );
                
this._refresh();
            },

            
// _setOption is called for each individual option that is changing
            
_setOption: function( keyvalue ) {
                
// prevent invalid color values
                
if ( /red|green|blue/.test(key) && (value || value 255) ) {
                    return;
                }
                
this._superkeyvalue );
            }
        });

        
// initialize with default options
        
$( "#my-widget1" ).colorize();

        
// initialize with two customized options
        
$( "#my-widget2" ).colorize({
            
red60,
            
blue60
        
});

        
// initialize with custom green value
        // and a random callback to allow only colors with enough green
        
$( "#my-widget3" ).colorize( {
            
green128,
            
random: function( eventui ) {
                return 
ui.green 128;
            }
        });

        
// click to toggle enabled/disabled
        
$( "#disable" ).click(function() {
            
// use the custom selector created for each widget to find all instances
            // all instances are toggled together, so we can check the state from the first
            
if ( $( ":custom-colorize" ).colorize"option""disabled" ) ) {
                $( 
":custom-colorize" ).colorize"enable" );
            } else {
                $( 
":custom-colorize" ).colorize"disable" );
            }
        });

        
// click to set options after initalization
        
$( "#black" ).click( function() {
            $( 
":custom-colorize" ).colorize"option", {
                
red0,
                
green0,
                
blue0
            
});
        });
    });
    </
script>
</
head>
<
body>

<
div>
    <
div id="my-widget1">color me</div>
    <
div id="my-widget2">color me</div>
    <
div id="my-widget3">color me</div>
    <
button id="disable">Toggle disabled option</button>
    <
button id="black">Go black</button>
</
div>

<
div class="demo-description">
<
p>This demo shows a simple custom widget built using the widget factory (jquery.ui.widget.js).</p>
<
p>The three boxes are initialized in different waysClicking them changes their background colorView source to see how it worksits heavily commented</p>
</
div>
</
body>
</
html>
?>
Онлайн: 2
Реклама