diff options
author | friendica <info@friendica.com> | 2015-01-26 18:27:03 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2015-01-26 18:27:03 -0800 |
commit | ac594183c6fdc6cf4d5a2a29ade7478a17336397 (patch) | |
tree | d38f73727da4d8697b00d2102ae10b501d1909ce /library/jquery-textcomplete/jquery.textcomplete.js | |
parent | e6bfe3f2c10e851ed5ba49886ec8d0a9a9de2296 (diff) | |
parent | 9f5bfca28dde23893156ad36682e20ca2fc0dd45 (diff) | |
download | volse-hubzilla-ac594183c6fdc6cf4d5a2a29ade7478a17336397.tar.gz volse-hubzilla-ac594183c6fdc6cf4d5a2a29ade7478a17336397.tar.bz2 volse-hubzilla-ac594183c6fdc6cf4d5a2a29ade7478a17336397.zip |
Merge branch 'master' into tres and add some work on the item_deleted flag refactor
Conflicts:
include/attach.php
include/onedirsync.php
include/zot.php
mod/locs.php
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; }, |