This example demonstrates different ways to create a Push Button.
A Push Button can be instantiated three different ways:
A Button can be created using an existing
<input type="button"/> or
<button type="button"/> element as a source element, the attributes of which are captured and used for the creation of a new element that replaces the source element inline.
Pass the id of the source element as the first argument to the Button's constructor. Additional configuration attributes for a Button can be set at instantiation time by specifying them in an object literal that is passed as the second argument to the Button's constructor. Note: the value of configuration attributes passed to the Button constructor will trump those of the corresponding HTML attributes of the original source element.
A Button can also be instantiated using pre-defined Button Control HTML: An element with a class of "yui-button" and "yui-push-button" containing a element with a class of "first-child" containing either an
<input type="button"/> or
<button type="button"/> element:
To instantiate a Button using the Button Control HTML, pass the id of the Button's root element (the element with the classes "yui-button" and "yui-push-button" applied) as the first argument to constructor and any additional configuration attributes as the second argument via an object literal.
To build a Button without any existing HTML, pass a set of configuration attributes as a single argument to the constructor using an object literal.
In most cases, it is necessary to specify the button's id, type, label and container (the HTML element that the button should be appended to once created). If an id is not specified for the button, one will be generated using the
generateId method of the Dom utility. Similarly, if the "type" attribute is omitted, the default type of "button" will be applied.
All of the the events for Button (including DOM-based events such as "mouseover" or "click") can be listened for via
addListener method (or
on for short).
Note: To listen for DOM-based events, always use the provided event interface rather than attaching handlers directly to Button or ButtonGroup DOM elements.
The event object is passed to the handler function as the first argument. For DOM events, this is the actual event object.
It is also possible to add a "click" event handler via the "onclick"
configuration attribute. The "onclick" configuration attribute accepts an
object literal representing the code to be executed when the Button
is clicked. The format for the object literal is:
fn: Function (Required), // The handler to call when the event fires.
obj: Object (Optional), // An object to pass back to the handler.
scope: Object (Optional) // The object to use for the scope of the handler. (By default the scope is the YAHOO.widget.Button instance)
Add icons to Buttons via CSS. Set the "background" property of the Button's
<button/> element to the url of the icon:
Note: Logging and debugging is currently turned off for this example.
All YUI 2.x users should review the YUI 2.8.2 security bulletin, which discusses a vulnerability present in YUI 2.4.0-2.8.1.