diff --git a/themes/bootstrap3/js/autocomplete.js b/themes/bootstrap3/js/autocomplete.js index 996e0217cdb624f8e0dbaadc673edd6bb4c38482..547bff092e7e8db3a962c1edd6668f5a41db3cdf 100644 --- a/themes/bootstrap3/js/autocomplete.js +++ b/themes/bootstrap3/js/autocomplete.js @@ -18,9 +18,7 @@ function populate(value, input, eventType) { input.val(value); hide(); - if (typeof options.onselection !== 'undefined') { - options.onselection(value, input, eventType); - } + input.trigger('autocomplete:select', {value: value, eventType: eventType}); } function createList(data, input) { @@ -96,13 +94,13 @@ } function align(input, element) { - var offset = input[0].getBoundingClientRect(); + var position = input.position(); element.css({ position: 'absolute', - top: offset.top + offset.height, - left: offset.left, - maxWidth: offset.width * 2, - minWidth: offset.width, + top: position.top + input.outerHeight(), + left: position.left, + minWidth: input.width() / 2, + maxWidth: Math.max(input.width(), input.closest('form').width()), zIndex: 50 }); } @@ -111,9 +109,12 @@ if (typeof element === 'undefined') { element = $('<div/>') .addClass('autocomplete-results hidden') - .text('<i class="item loading">'+options.loadingString+'</i>'); + .html('<i class="item loading">'+options.loadingString+'</i>'); align(input, element); - $('body').append(element); + input.closest('form').append(element); + $(window).resize(function() { + align(input, element); + }); } input.data('selected', -1);