diff options
author | friendica <info@friendica.com> | 2015-01-21 14:26:10 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2015-01-21 14:26:10 -0800 |
commit | 0b6415e73dc076bb2aebb1db92ed34ed5fe411b3 (patch) | |
tree | ff81496e66f2c5a7c5dbaf27460cfac448f9a9d0 /library/jquery-textcomplete/jquery.textcomplete.js | |
parent | 6d0e6b78b4b9797ae2f9c34e4a79a187086495d4 (diff) | |
parent | f7c88c99b0f77c81f14e3034489f7ad8e75b5cfe (diff) | |
download | volse-hubzilla-0b6415e73dc076bb2aebb1db92ed34ed5fe411b3.tar.gz volse-hubzilla-0b6415e73dc076bb2aebb1db92ed34ed5fe411b3.tar.bz2 volse-hubzilla-0b6415e73dc076bb2aebb1db92ed34ed5fe411b3.zip |
Merge https://github.com/friendica/red into pending_merge
Diffstat (limited to 'library/jquery-textcomplete/jquery.textcomplete.js')
-rw-r--r-- | library/jquery-textcomplete/jquery.textcomplete.js | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/library/jquery-textcomplete/jquery.textcomplete.js b/library/jquery-textcomplete/jquery.textcomplete.js index c8303eaa0..3df84f3b4 100644 --- a/library/jquery-textcomplete/jquery.textcomplete.js +++ b/library/jquery-textcomplete/jquery.textcomplete.js @@ -124,9 +124,8 @@ if (typeof jQuery === 'undefined') { this.views = []; this.option = $.extend({}, Completer._getDefaults(), option); - if (!this.$el.is('input[type=text]') && !this.$el.is('textarea') && !element.isContentEditable && element.contentEditable != 'true') { - throw new Error('textcomplete must be called on a input[type=text], Textarea or a ContentEditable.'); + throw new Error('textcomplete must be called on a Textarea or a ContentEditable.'); } if (element === document.activeElement) { @@ -414,6 +413,22 @@ if (typeof jQuery === 'undefined') { setPosition: function (position) { this.$el.css(this._applyPlacement(position)); + + // Make the dropdown fixed if the input is also fixed + // This can't be done during init, as textcomplete may be used on multiple elements on the same page + // Because the same dropdown is reused behind the scenes, we need to recheck every time the dropdown is showed + var position = 'absolute'; + // Check if input or one of its parents has positioning we need to care about + this.$inputEl.add(this.$inputEl.parents()).each(function() { + if($(this).css('position') === 'absolute') // The element has absolute positioning, so it's all OK + return false; + if($(this).css('position') === 'fixed') { + position = 'fixed'; + return false; + } + }); + this.$el.css({ position: position }); // Update positioning + return this; }, |