File tree Expand file tree Collapse file tree 3 files changed +41
-5
lines changed
test/manual-test-examples/addons/p5.dom/selectbox_test Expand file tree Collapse file tree 3 files changed +41
-5
lines changed Original file line number Diff line number Diff line change 188188 return converted ;
189189 } else if ( elt . tagName === "VIDEO" || elt . tagName === "AUDIO" ) {
190190 return new p5 . MediaElement ( elt ) ;
191- } else {
191+ } else if ( elt . tagName === "SELECT" ) {
192+ return createSelect ( new p5 . Element ( elt ) ) ;
193+ }
194+ else {
192195 return new p5 . Element ( elt ) ;
193196 }
194197 }
525528
526529 /**
527530 * Creates a dropdown menu <select></select> element in the DOM.
531+ * It also helps to asssign select-box methods to p5.Element when selecting existing select box
528532 * @method createSelect
529533 * @param {boolean } [multiple] true if dropdown should support multiple selections
530534 * @return {Object|p5.Element } pointer to p5.Element holding created node
550554 * }
551555 * </code></div>
552556 */
557+
553558 p5 . prototype . createSelect = function ( mult ) {
554- var elt = document . createElement ( 'select' ) ;
555- if ( mult ) {
556- elt . setAttribute ( 'multiple' , 'true' ) ;
559+
560+ if ( typeof mult === 'object' && mult . elt . nodeName == 'SELECT' ) {
561+ var self = mult ;
562+ var elt = this . elt = mult . elt ;
563+ } else {
564+ var elt = document . createElement ( 'select' ) ;
565+ if ( mult && typeof mult === 'boolean' ) {
566+ elt . setAttribute ( 'multiple' , 'true' ) ;
567+ }
568+ var self = addElement ( elt , this ) ;
557569 }
558- var self = addElement ( elt , this ) ;
559570 self . option = function ( name , value ) {
560571 var opt = document . createElement ( 'option' ) ;
561572 opt . innerHTML = name ;
Original file line number Diff line number Diff line change 1+ < html >
2+ < head >
3+ < script language ="javascript " type ="text/javascript " src ="../../../../../lib/p5.js "> </ script >
4+ < script language ="javascript " type ="text/javascript " src ="../../../../../lib/addons/p5.dom.js "> </ script >
5+ < script language ="javascript " src ="sketch.js "> </ script >
6+ </ head >
7+
8+ < body >
9+ </ body >
10+ </ html >
Original file line number Diff line number Diff line change 1+ function setup ( ) {
2+ // Created a dropdown in DOM
3+ var dropdown = createSelect ( ) ;
4+ dropdown . option ( 'apple' ) ;
5+ dropdown . option ( 'mango' ) ;
6+ dropdown . id ( "fruitlist" ) ;
7+ console . log ( dropdown ) ;
8+
9+ // Selected a dropdown from DOM
10+ var dropdown = select ( '#fruitlist' ) ;
11+ dropdown . option ( 'applex' ) ;
12+ dropdown . option ( 'mangox' ) ;
13+ console . log ( dropdown ) ;
14+
15+ }
You can’t perform that action at this time.
0 commit comments