nl_tokens: Performs the opening of the dropdown abstract
pl_tokens: function ( ) { var cid = this . containerId , scroll = "scroll." + cid , resize = "resize." + cid , orient = "orientationchange." + cid , mask , maskCss ; this . container . addClass ( "select2-dropdown-open" ) . addClass ( "select2-container-active" ) ; this . clearDropdownAlignmentPreference ( ) ; if ( this . dropdown [ 0 ] !== this . body ( ) . children ( ) . last ( ) [ 0 ] ) { this . dropdown . detach ( ) . appendTo ( this . body ( ) ) ; } // create the dropdown mask if doesnt already exist mask = $ ( "#select2-drop-mask" ) ; if ( mask . length == 0 ) { mask = $ ( document . createElement ( "div" ) ) ; mask . attr ( "id" , "select2-drop-mask" ) . attr ( "class" , "select2-drop-mask" ) ; mask . hide ( ) ; mask . appendTo ( this . body ( ) ) ; mask . on ( "mousedown touchstart click" , function ( e ) { var dropdown = $ ( "#select2-drop" ) , self ; if ( dropdown . length > 0 ) { self = dropdown . data ( "select2" ) ; if ( self . opts . selectOnBlur ) { self . selectHighlighted ( { noFocus : true } ) ; } self . close ( ) ; e . preventDefault ( ) ; e . stopPropagation ( ) ; } } ) ; } // ensure the mask is always right before the dropdown if ( this . dropdown . prev ( ) [ 0 ] !== <mask> [ 0 ] ) { this . dropdown . before ( mask ) ; } // move the global id to the correct dropdown $ ( "#select2-drop" ) . removeAttr ( "id" ) ; this . dropdown . attr ( "id" , "select2-drop" ) ; // show the elements maskCss = _makeMaskCss ( ) ; mask . css ( maskCss ) . show ( ) ; this . dropdown . show ( ) ; this . positionDropdown ( ) ; this . dropdown . addClass ( "select2-drop-active" ) ; // attach listeners to events that can change the position of the container and thus require // the position of the dropdown to be updated as well so it does not come unglued from the container var that = this ; this . container . parents ( ) . add ( window ) . each ( function ( ) { $ ( this ) . on ( resize + " " + scroll + " " + orient , function ( e ) { var maskCss = _makeMaskCss ( ) ; $ ( "#select2-drop-mask" ) . css ( maskCss ) ; that . positionDropdown ( ) ; } ) ; } ) ; function _makeMaskCss ( ) { return { width : Math . max ( document . documentElement . scrollWidth , $ ( window ) . width ( ) ) , height : Math . max ( document . documentElement . scrollHeight , $ ( window ) . height ( ) ) } } }