This basic example walks you through the steps needed to get a default Calendar up and running. It covers the set of file dependencies which need to be included as well as the basic markup and JS code required to get you started.
Note that when using the YUI Sam Skin css file, you need to make sure an ancestor of the Calendar DIV has the
yui-skin-sam class applied to it. For most use cases this class can be applied to the body opening tag (
<body class="yui-skin-sam">). For more information on skinning YUI components and making use of default skins, see our Understanding YUI Skins article here on the YUI website.
Your file paths may vary depending on the location in which you installed the YUI libraries. The Calendar examples, when referring to file paths, use the build directory as the root for the YUI distribution.
The only markup required by Calendar is an initial empty DIV into which the Calendar will be rendered. The DIV should have a unique id specified in the markup, which will match the id passed to the Calendar's constructor.
The markup for our simple Calendar example looks like this:
Finally, the Calendar can be instantiated in a script block, like this:
Note that to avoid using the global variable space, we are placing our example Calendar's variable and the init function, into the YAHOO.example.calendar namespace (see line 2 above). For more information about namespacing, see the YAHOO Global object.
The constructor in our example (line 5) takes two arguments: the id to be used for our new Calendar's table, which is created dynamically ("cal1" in this example) and the id of the inital container where we want to render the Calendar ("cal1Container" in this case).
We are also specifying that the init() function should not be executed until the the DOM for the page is ready, using the Event Utility. This allows us to create the Calendar as soon as the browser processes the markup on the page, and not have to wait for images to load.
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.