diff --git a/README.md b/README.md index a16c9ad..c037995 100644 --- a/README.md +++ b/README.md @@ -61,12 +61,13 @@ $( '.uls-trigger' ).uls( { | Option | Description | |-------------|---------------------| -| left | Left position of ULS dialog. E.g: 100px or 20% | -| top | Top position of ULS dialog. E.g: 100px or 20% | +| left | DEPRECATED: use onPosition | +| top | DEPRECATED: use onPosition | | onSelect | Callback function when user selects a language. | | onCancel | Callback function when the dialog is closed without selecting a language. | | onReady | Callback function when ULS has initialized. | | onVisible | Callback function when ULS dialog is shown. | +| onPosition | Callback for positioning the dialog. It should return an object with any of the keys `top`, `right`, `bottom` and `left`. | | languages | List of selectable languages. Defaults to all known languages. | | menuWidth | Override the automatic choice of menu width. One of narrow, medium, wide (1, 2, 4 columns respectively). | | ulsPurpose | A string that will identify this instance of ULS. It's useful if you have several instances of ULS in your web application and you want to have a unique identifier for each of them. | diff --git a/src/jquery.uls.core.js b/src/jquery.uls.core.js index 8661578..fcf489d 100644 --- a/src/jquery.uls.core.js +++ b/src/jquery.uls.core.js @@ -119,6 +119,11 @@ top = this.top, left = this.left; + if ( this.options.onPosition ) { + return this.options.onPosition.call( this ); + } + + // Default implementation (middle of the screen under the trigger) if ( top === undefined ) { pos = $.extend( {}, this.$element.offset(), { height: this.$element[ 0 ].offsetHeight @@ -380,9 +385,9 @@ }; $.fn.uls.defaults = { - // CSS top position for the dialog + // DEPRECATED: CSS top position for the dialog top: undefined, - // CSS left position for the dialog + // DEPRECATED: CSS left position for the dialog left: undefined, // Callback function when user selects a language onSelect: undefined, @@ -392,6 +397,8 @@ onReady: undefined, // Callback function when ULS dialog is shown onVisible: undefined, + // Callback function when ULS dialog is ready to be shown + onPosition: undefined, // Languages to be used for ULS, default is all languages languages: $.uls.data.getAutonyms(), // The options are wide (4 columns), medium (2 columns), and narrow (1 column).