📄 dropdowncontainer.js
字号:
/* Copyright (c) 2004-2006, The Dojo Foundation All Rights Reserved. Licensed under the Academic Free License version 2.1 or above OR the modified BSD license. For more information on Dojo licensing, see: http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.widget.DropdownContainer");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.PopupContainer");dojo.require("dojo.event.*");dojo.require("dojo.html.layout");dojo.require("dojo.html.display");dojo.require("dojo.html.iframe");dojo.require("dojo.html.util");dojo.widget.defineWidget( "dojo.widget.DropdownContainer", dojo.widget.HtmlWidget, { // summary: // provides an input box and a button for a dropdown. // In subclass, the dropdown can be specified. // inputWidth: String: width of the input box inputWidth: "7em", // id: String: id of this widget id: "", // inputId: String: id of the input box inputId: "", // inputName: String: name of the input box inputName: "", // iconURL: dojo.uri.Uri: icon for the dropdown button iconURL: dojo.uri.dojoUri("src/widget/templates/images/combo_box_arrow.png"), // copyClass: // should we use the class properties on the source node instead // of our own styles? copyClasses: false, // iconAlt: dojo.uri.Uri: alt text for the dropdown button icon iconAlt: "", // containerToggle: String: toggle property of the dropdown containerToggle: "plain", // containerToggleDuration: Integer: toggle duration property of the dropdown containerToggleDuration: 150, templateString: '<span style="white-space:nowrap"><input type="hidden" name="" value="" dojoAttachPoint="valueNode" /><input name="" type="text" value="" style="vertical-align:middle;" dojoAttachPoint="inputNode" autocomplete="off" /> <img src="${this.iconURL}" alt="${this.iconAlt}" dojoAttachEvent="onclick:onIconClick" dojoAttachPoint="buttonNode" style="vertical-align:middle; cursor:pointer; cursor:hand" /></span>', templateCssPath: "", isContainer: true, attachTemplateNodes: function(){ // summary: use attachTemplateNodes to specify containerNode, as fillInTemplate is too late for this dojo.widget.DropdownContainer.superclass.attachTemplateNodes.apply(this, arguments); this.popup = dojo.widget.createWidget("PopupContainer", {toggle: this.containerToggle, toggleDuration: this.containerToggleDuration}); this.containerNode = this.popup.domNode; }, fillInTemplate: function(args, frag){ this.domNode.appendChild(this.popup.domNode); if(this.id) { this.domNode.id = this.id; } if(this.inputId){ this.inputNode.id = this.inputId; } if(this.inputName){ this.inputNode.name = this.inputName; } this.inputNode.style.width = this.inputWidth; this.inputNode.disabled = this.disabled; if(this.copyClasses){ this.inputNode.style = ""; this.inputNode.className = this.getFragNodeRef(frag).className; } dojo.event.connect(this.inputNode, "onchange", this, "onInputChange"); }, onIconClick: function(/*Event*/ evt){ if(this.disabled) return; if(!this.popup.isShowingNow){ this.popup.open(this.inputNode, this, this.buttonNode); }else{ this.popup.close(); } }, hideContainer: function(){ // summary: hide the dropdown if(this.popup.isShowingNow){ this.popup.close(); } }, onInputChange: function(){ // summary: signal for changes in the input box }, enable: function() { // summary: enable this widget to accept user input this.inputNode.disabled = false; dojo.widget.DropdownContainer.superclass.enable.apply(this, arguments); }, disable: function() { // summary: lock this widget so that the user can't change the value this.inputNode.disabled = true; dojo.widget.DropdownContainer.superclass.disable.apply(this, arguments); } });
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -