dijit
Version:
Dijit provides a complete collection of user interface controls based on Dojo, giving you the power to create web applications that are highly optimized for usability, performance, internationalization, accessibility, but above all deliver an incredible u
57 lines (46 loc) • 1.43 kB
JavaScript
define([
"dojo/_base/declare", // declare
"dojo/dom-class", // domClass.toggle
"./MenuItem",
"dojo/text!./templates/CheckedMenuItem.html",
"./hccss"
], function(declare, domClass, MenuItem, template){
// module:
// dijit/CheckedMenuItem
return declare("dijit.CheckedMenuItem", MenuItem, {
// summary:
// A checkbox-like menu item for toggling on and off
// Use both base classes so we get styles like dijitMenuItemDisabled
baseClass: "dijitMenuItem dijitCheckedMenuItem",
templateString: template,
// checked: Boolean
// Our checked state
checked: false,
_setCheckedAttr: function(/*Boolean*/ checked){
this.domNode.setAttribute("aria-checked", checked ? "true" : "false");
this._set("checked", checked); // triggers CSS update via _CssStateMixin
},
iconClass: "", // override dijitNoIcon
role: "menuitemcheckbox",
// checkedChar: String
// Character (or string) used in place of checkbox icon when display in high contrast mode
checkedChar: "✓",
onChange: function(/*Boolean*/ /*===== checked =====*/){
// summary:
// User defined function to handle check/uncheck events
// tags:
// callback
},
_onClick: function(evt){
// summary:
// Clicking this item just toggles its state
// tags:
// private
if(!this.disabled){
this.set("checked", !this.checked);
this.onChange(this.checked);
}
this.onClick(evt);
}
});
});