diff --git a/css/style.css b/css/style.css index 2fe5ecc..25a18d2 100644 --- a/css/style.css +++ b/css/style.css @@ -1926,6 +1926,7 @@ input.userMenu-search-field:focus::-ms-input-placeholder { .following ol.following-list .mini-profile-info button { margin-top: 5px; } + /* Autocomplite*/ ul.dropdown-menu { position: absolute; diff --git a/js/calm.js b/js/calm.js index 2c11f71..4cb4716 100644 --- a/js/calm.js +++ b/js/calm.js @@ -1,4 +1,8 @@ $(function(){ + $('.dropdown-menu').on('keydown', function(e){ + e = event || window.event; + e.stopPropagation(); + }) $('.post-text').on('click', 'a', function(e){ e.stopPropagation(); }); @@ -161,11 +165,10 @@ function autocompleteAndEmoji() { }, index: 1, maxCount: 5 - } -]); + } + ]); } - function replaceEmoji() { var exp = /\B:[A-Za-z0-9_+-]+:\B/gi; $('.post-text').each(function(){ @@ -177,6 +180,7 @@ function replaceEmoji() { })); }) } + function InitOptions () { soundNotifOptions(); volumeControl(); diff --git a/js/interface_common.js b/js/interface_common.js index fba6c6d..9995df7 100644 --- a/js/interface_common.js +++ b/js/interface_common.js @@ -386,13 +386,13 @@ function replyTextKeypress(e) { $.MAL.disableButton(tweetAction); } - if(localStorage['keysSend'] == 1){ + if(localStorage['keysSend'] == 1 && $('.dropdown-menu').css('display') == 'none'){ if (e.keyCode === 13 && (!e.metaKey && !e.ctrlKey)) { $this.val($this.val().trim()); - if( !tweetAction.hasClass("disabled") ) { + if( !tweetAction.hasClass("disabled")) { tweetAction.click(); - if($this.parent().parent().is('.post-area,.post-reply-content')){ - $this.parent().removeClass('open'); + if($this.parent().parent().parent().is('.post-area,.post-reply-content')){ + $this.parent().parent().removeClass('open'); $this.blur(); } } @@ -403,8 +403,8 @@ function replyTextKeypress(e) { $this.val($this.val().trim()); if( !tweetAction.hasClass("disabled") ) { tweetAction.click(); - if($this.parent().parent().is('.post-area,.post-reply-content')){ - $this.parent().removeClass('open'); + if($this.parent().parent().parent().is('.post-area,.post-reply-content')){ + $this.parent().parent().removeClass('open'); $this.blur(); } } diff --git a/js/jquery.a-tools-1.4.1.js b/js/jquery.a-tools-1.4.1.js deleted file mode 100644 index d6e9ae2..0000000 --- a/js/jquery.a-tools-1.4.1.js +++ /dev/null @@ -1,578 +0,0 @@ -/*! - * a-tools 1.4.1 - * - * Copyright (c) 2009 Andrey Kramarev(andrey.kramarev[at]ampparit.com), Ampparit Inc. (www.ampparit.com) - * Licensed under the MIT license. - * http://www.ampparit.fi/a-tools/license.txt - * - * Basic usage: - - - - - // Get current selection - var sel = $("textarea").getSelection() - - // Replace current selection - $("input").replaceSelection("foo"); - - // Count characters - alert($("textarea").countCharacters()); - - // Set max length without callback function - $("textarea").setMaxLength(7); - - // Set max length with callback function which will be called when limit is exceeded - $("textarea").setMaxLength(10, function() { - alert("hello") - }); - - // Removing limit: - $("textarea").setMaxLength(-1); - - // Insert text at current caret position - $("#textarea").insertAtCaretPos("hello"); - - // Set caret position (1 = beginning, -1 = end) - $("#textArea").setCaretPos(10); - - // Set Selection - $("#textArea").setSelection(10,15); - - */ -var caretPositionAmp; - -jQuery.fn.extend({ - getSelection: function() { // function for getting selection, and position of the selected text - var input = this.jquery ? this[0] : this; - var start; - var end; - var part; - var number = 0; - input.onmousedown = function() { // for IE because it loses caret position when focus changed - if (document.selection && typeof(input.selectionStart) != "number") { - document.selection.empty(); - } else { - window.getSelection().removeAllRanges(); - } - } - if (document.selection) { - // part for IE and Opera - var s = document.selection.createRange(); - var minus = 0; - var position = 0; - var minusEnd = 0; - var re; - var rc; - if (input.value.match(/\n/g) != null) { - number = input.value.match(/\n/g).length;// number of EOL simbols - } - if (s.text) { - part = s.text; - // OPERA support - if (typeof(input.selectionStart) == "number") { - start = input.selectionStart; - end = input.selectionEnd; - // return null if the selected text not from the needed area - if (start == end) { - return { start: start, end: end, text: s.text, length: end - start }; - } - } else { - // IE support - var firstRe; - var secondRe; - re = input.createTextRange(); - rc = re.duplicate(); - firstRe = re.text; - re.moveToBookmark(s.getBookmark()); - secondRe = re.text; - rc.setEndPoint("EndToStart", re); - // return null if the selectyed text not from the needed area - if (firstRe == secondRe && firstRe != s.text) { - return this; - } - start = rc.text.length; - end = rc.text.length + s.text.length; - } - // remove all EOL to have the same start and end positons as in MOZILLA - if (number > 0) { - for (var i = 0; i <= number; i++) { - var w = input.value.indexOf("\n", position); - if (w != -1 && w < start) { - position = w + 1; - minus++; - minusEnd = minus; - } else if (w != -1 && w >= start && w <= end) { - if (w == start + 1) { - minus--; - minusEnd--; - position = w + 1; - continue; - } - position = w + 1; - minusEnd++; - } else { - i = number; - } - } - } - if (s.text.indexOf("\n", 0) == 1) { - minusEnd = minusEnd + 2; - } - start = start - minus; - end = end - minusEnd; - - return { start: start, end: end, text: s.text, length: end - start }; - } - input.focus (); - if (typeof(input.selectionStart) == "number") { - start = input.selectionStart; - } else { - s = document.selection.createRange(); - re = input.createTextRange(); - rc = re.duplicate(); - re.moveToBookmark(s.getBookmark()); - rc.setEndPoint("EndToStart", re); - start = rc.text.length; - } - if (number > 0) { - for (var i = 0; i <= number; i++) { - var w = input.value.indexOf("\n", position); - if (w != -1 && w < start) { - position = w + 1; - minus++; - } else { - i = number; - } - } - } - start = start - minus; - return { start: start, end: start, text: s.text, length: 0 }; - } else if (typeof(input.selectionStart) == "number" ) { - start = input.selectionStart; - end = input.selectionEnd; - part = input.value.substring(input.selectionStart, input.selectionEnd); - return { start: start, end: end, text: part, length: end - start }; - } else { return { start: undefined, end: undefined, text: undefined, length: undefined }; } - }, - - // function for the replacement of the selected text - replaceSelection: function(inputStr) { - var input = this.jquery ? this[0] : this; - //part for IE and Opera - var start; - var end; - var position = 0; - var rc; - var re; - var number = 0; - var minus = 0; - var mozScrollFix = ( input.scrollTop == undefined ) ? 0 : input.scrollTop; - if (document.selection && typeof(input.selectionStart) != "number") { - var s = document.selection.createRange(); - - // IE support - if (typeof(input.selectionStart) != "number") { // return null if the selected text not from the needed area - var firstRe; - var secondRe; - re = input.createTextRange(); - rc = re.duplicate(); - firstRe = re.text; - re.moveToBookmark(s.getBookmark()); - secondRe = re.text; - rc.setEndPoint("EndToStart", re); - if (firstRe == secondRe && firstRe != s.text) { - return this; - } - } - if (s.text) { - part = s.text; - if (input.value.match(/\n/g) != null) { - number = input.value.match(/\n/g).length;// number of EOL simbols - } - // IE support - start = rc.text.length; - // remove all EOL to have the same start and end positons as in MOZILLA - if (number > 0) { - for (var i = 0; i <= number; i++) { - var w = input.value.indexOf("\n", position); - if (w != -1 && w < start) { - position = w + 1; - minus++; - - } else { - i = number; - } - } - } - s.text = inputStr; - caretPositionAmp = rc.text.length + inputStr.length; - re.move("character", caretPositionAmp); - document.selection.empty(); - input.blur(); - } - return this; - } else if (typeof(input.selectionStart) == "number" && // MOZILLA support - input.selectionStart != input.selectionEnd) { - - start = input.selectionStart; - end = input.selectionEnd; - input.value = input.value.substr(0, start) + inputStr + input.value.substr(end); - position = start + inputStr.length; - input.setSelectionRange(position, position); - input.scrollTop = mozScrollFix; - return this; - } - return this; - }, - - //Set Selection in text - setSelection: function(startPosition, endPosition) { - startPosition = parseInt(startPosition); - endPosition = parseInt(endPosition); - - var input = this.jquery ? this[0] : this; - input.focus (); - if (typeof(input.selectionStart) != "number") { - re = input.createTextRange(); - if (re.text.length < endPosition) { - endPosition = re.text.length+1; - } - } - if (endPosition < startPosition) { - return this; - } - if (document.selection) { - var number = 0; - var plus = 0; - var position = 0; - var plusEnd = 0; - if (typeof(input.selectionStart) != "number") { // IE - re.collapse(true); - re.moveEnd('character', endPosition); - re.moveStart('character', startPosition); - re.select(); - return this; - } else if (typeof(input.selectionStart) == "number") { // Opera - if (input.value.match(/\n/g) != null) { - number = input.value.match(/\n/g).length;// number of EOL simbols - } - if (number > 0) { - for (var i = 0; i <= number; i++) { - var w = input.value.indexOf("\n", position); - if (w != -1 && w < startPosition) { - position = w + 1; - plus++; - plusEnd = plus; - } else if (w != -1 && w >= startPosition && w <= endPosition) { - if (w == startPosition + 1) { - plus--; - plusEnd--; - position = w + 1; - continue; - } - position = w + 1; - plusEnd++; - } else { - i = number; - } - } - } - startPosition = startPosition +plus; - endPosition = endPosition + plusEnd; - input.selectionStart = startPosition; - input.selectionEnd = endPosition; - return this; - } else { - return this; - } - } - else if (input.selectionStart) { // MOZILLA support - input.focus (); - input.selectionStart = startPosition; - input.selectionEnd = endPosition; - return this; - } - }, - - // insert text at current caret position - insertAtCaretPos: function(inputStr) { - var input = this.jquery ? this[0] : this; - var start; - var end; - var position; - var s; - var re; - var rc; - var point; - var minus = 0; - var number = 0; - var mozScrollFix = ( input.scrollTop == undefined ) ? 0 : input.scrollTop; - input.focus(); - if (document.selection && typeof(input.selectionStart) != "number") { - if (input.value.match(/\n/g) != null) { - number = input.value.match(/\n/g).length;// number of EOL simbols - } - point = parseInt(caretPositionAmp); - if (number > 0) { - for (var i = 0; i <= number; i++) { - var w = input.value.indexOf("\n", position); - if (w != -1 && w <= point) { - position = w + 1; - point = point - 1; - minus++; - } - } - } - } - caretPositionAmp = parseInt(caretPositionAmp); - // IE - input.onmouseup = function() { // for IE because it loses caret position when focus changed - if (document.selection && typeof(input.selectionStart) != "number") { - input.focus(); - s = document.selection.createRange(); - re = input.createTextRange(); - rc = re.duplicate(); - re.moveToBookmark(s.getBookmark()); - rc.setEndPoint("EndToStart", re); - caretPositionAmp = rc.text.length; - } - } - - if (document.selection && typeof(input.selectionStart) != "number") { - s = document.selection.createRange(); - if (s.text.length != 0) { - return this; - } - re = input.createTextRange(); - textLength = re.text.length; - rc = re.duplicate(); - re.moveToBookmark(s.getBookmark()); - rc.setEndPoint("EndToStart", re); - start = rc.text.length; - if (caretPositionAmp > 0 && start ==0) { - minus = caretPositionAmp - minus; - re.move("character", minus); - re.select(); - s = document.selection.createRange(); - caretPositionAmp += inputStr.length; - } else if (!(caretPositionAmp >= 0) && textLength ==0) { - s = document.selection.createRange(); - caretPositionAmp = inputStr.length + textLength; - } else if (!(caretPositionAmp >= 0) && start ==0) { - re.move("character", textLength); - re.select(); - s = document.selection.createRange(); - caretPositionAmp = inputStr.length + textLength; - } else if (!(caretPositionAmp >= 0) && start > 0) { - re.move("character", 0); - document.selection.empty(); - re.select(); - s = document.selection.createRange(); - caretPositionAmp = start + inputStr.length; - } else if (caretPositionAmp >= 0 && caretPositionAmp == textLength) { - if (textLength != 0) { - re.move("character", textLength); - re.select(); - } else { - re.move("character", 0); - } - s = document.selection.createRange(); - caretPositionAmp = inputStr.length + textLength; - } else if (caretPositionAmp >= 0 && start != 0 && caretPositionAmp >= start) { - minus = caretPositionAmp - start; - re.move("character", minus); - document.selection.empty(); - re.select(); - s = document.selection.createRange(); - caretPositionAmp = caretPositionAmp + inputStr.length; - } else if (caretPositionAmp >= 0 && start != 0 && caretPositionAmp < start) { - re.move("character", 0); - document.selection.empty(); - re.select(); - s = document.selection.createRange(); - caretPositionAmp = caretPositionAmp + inputStr.length; - } else { - document.selection.empty(); - re.select(); - s = document.selection.createRange(); - caretPositionAmp = caretPositionAmp + inputStr.length; - } - s.text = inputStr; - input.focus(); - - return this; - } else if (typeof(input.selectionStart) == "number" && // MOZILLA support - input.selectionStart == input.selectionEnd) { - position = input.selectionStart + inputStr.length; - start = input.selectionStart; - end = input.selectionEnd; - input.value = input.value.substr(0, start) + inputStr + input.value.substr(end); - input.setSelectionRange(position, position); - input.scrollTop = mozScrollFix; - return this; - } - return this; - }, - - - // Set caret position - setCaretPos: function(inputStr) { - - var input = this.jquery ? this[0] : this; - var s; - var re; - var position; - var number = 0; - var minus = 0; - var w; - input.focus(); - if (parseInt(inputStr) == 0) { - return this; - } - //if (document.selection && typeof(input.selectionStart) == "number") { - if (parseInt(inputStr) > 0) { - inputStr = parseInt(inputStr) - 1; - if (document.selection && typeof(input.selectionStart) == "number" && input.selectionStart == input.selectionEnd) { - if (input.value.match(/\n/g) != null) { - number = input.value.match(/\n/g).length;// number of EOL simbols - } - if (number > 0) { - for (var i = 0; i <= number; i++) { - w = input.value.indexOf("\n", position); - if (w != -1 && w <= inputStr) { - position = w + 1; - inputStr = parseInt(inputStr) + 1; - } - } - } - } - } - else if (parseInt(inputStr) < 0) { - inputStr = parseInt(inputStr) + 1; - if (document.selection && typeof(input.selectionStart) != "number") { - inputStr = input.value.length + parseInt(inputStr); - if (input.value.match(/\n/g) != null) { - number = input.value.match(/\n/g).length;// number of EOL simbols - } - if (number > 0) { - for (var i = 0; i <= number; i++) { - w = input.value.indexOf("\n", position); - if (w != -1 && w <= inputStr) { - position = w + 1; - inputStr = parseInt(inputStr) - 1; - minus += 1; - } - } - inputStr = inputStr + minus - number; - } - } else if (document.selection && typeof(input.selectionStart) == "number") { - inputStr = input.value.length + parseInt(inputStr); - if (input.value.match(/\n/g) != null) { - number = input.value.match(/\n/g).length;// number of EOL simbols - } - if (number > 0) { - inputStr = parseInt(inputStr) - number; - for (var i = 0; i <= number; i++) { - w = input.value.indexOf("\n", position); - if (w != -1 && w <= (inputStr)) { - position = w + 1; - inputStr = parseInt(inputStr) + 1; - minus += 1; - } - } - } - } else { inputStr = input.value.length + parseInt(inputStr); } - } else { return this; } - // IE - if (document.selection && typeof(input.selectionStart) != "number") { - s = document.selection.createRange(); - if (s.text != 0) { - return this; - } - re = input.createTextRange(); - re.collapse(true); - re.moveEnd('character', inputStr); - re.moveStart('character', inputStr); - re.select(); - caretPositionAmp = inputStr; - - return this; - } else if (typeof(input.selectionStart) == "number" && // MOZILLA support - input.selectionStart == input.selectionEnd) { - input.setSelectionRange(inputStr, inputStr); - return this; - } - return this; - - }, - - countCharacters: function(str) { - var input = this.jquery ? this[0] : this; - if (input.value.match(/\r/g) != null) { - return input.value.length - input.value.match(/\r/g).length; - } - return input.value.length; - }, - - setMaxLength: function(max, f) { - this.each(function() { - var input = this.jquery ? this[0] : this; - var type = input.type; - var isSelected; - var maxCharacters; - // remove limit if input is a negative number - if (parseInt(max) < 0) { - max=100000000; - } - if (type == "text") { - input.maxLength = max; - } - if (type == "textarea" || type == "text") { - input.onkeypress = function(e) { - var spacesR = input.value.match(/\r/g); - maxCharacters = max; - if (spacesR != null) { - maxCharacters = parseInt(maxCharacters) + spacesR.length; - } - // get event - var key = e || event; - var keyCode = key.keyCode; - // check if any part of text is selected - if (document.selection) { - isSelected = document.selection.createRange().text.length > 0; - } else { - isSelected = input.selectionStart != input.selectionEnd; - } - if (input.value.length >= maxCharacters && (keyCode > 47 || keyCode == 32 || - keyCode == 0 || keyCode == 13) && !key.ctrlKey && !key.altKey && !isSelected) { - input.value = input.value.substring(0,maxCharacters); - if (typeof(f) == "function") { f() } //callback function - return false; - } - } - input.onkeyup = function() { - var spacesR = input.value.match(/\r/g); - var plus = 0; - var position = 0; - maxCharacters = max; - if (spacesR != null) { - for (var i = 0; i <= spacesR.length; i++) { - if (input.value.indexOf("\n", position) <= parseInt(max)) { - plus++; - position = input.value.indexOf("\n", position) + 1; - } - } - maxCharacters = parseInt(max) + plus; - } - if (input.value.length > maxCharacters) { - input.value = input.value.substring(0, maxCharacters); - if (typeof(f) == "function") { f() } - return this; - } - } - } else { return this; } - }) - return this; - } -}); diff --git a/js/jquery.asuggest.js b/js/jquery.asuggest.js deleted file mode 100644 index 332b3dd..0000000 --- a/js/jquery.asuggest.js +++ /dev/null @@ -1,231 +0,0 @@ -/* - * jQuery textarea suggest plugin - * - * Copyright (c) 2009-2010 Roman Imankulov - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - * Requires: - * - jQuery (tested with 1.3.x and 1.4.x) - * - jquery.a-tools >= 1.4.1 (http://plugins.jquery.com/project/a-tools) - */ - -/*globals jQuery,document */ - -(function ($) { - // workaround for Opera browser - if (navigator.userAgent.match(/opera/i)) { - $(document).keypress(function (e) { - if ($.asuggestFocused) { - $.asuggestFocused.focus(); - $.asuggestFocused = null; - e.preventDefault(); - e.stopPropagation(); - } - }); - } - - $.asuggestKeys = { - UNKNOWN: 0, - SHIFT: 16, - CTRL: 17, - ALT: 18, - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40, - DEL: 46, - TAB: 9, - RETURN: 13, - ESC: 27, - COMMA: 188, - PAGEUP: 33, - PAGEDOWN: 34, - BACKSPACE: 8, - SPACE: 32 - }; - $.asuggestFocused = null; - - $.fn.asuggest = function (suggests, options) { - return this.each(function () { - $.makeSuggest(this, suggests, options); - }); - }; - - $.fn.asuggest.defaults = { - 'delimiters': '\n ', - 'minChunkSize': 1, - 'cycleOnTab': true, - 'autoComplete': true, - 'endingSymbols': ' ', - 'stopSuggestionKeys': [$.asuggestKeys.RETURN, $.asuggestKeys.SPACE], - 'ignoreCase': false - }; - - /* Make suggest: - * - * create and return jQuery object on the top of DOM object - * and store suggests as part of this object - * - * @param area: HTML DOM element to add suggests to - * @param suggests: The array of suggest strings - * @param options: The options object - */ - $.makeSuggest = function (area, suggests, options) { - options = $.extend({}, $.fn.asuggest.defaults, options); - - var KEY = $.asuggestKeys, - $area = $(area); - $area.suggests = suggests; - $area.options = options; - - /* Internal method: get the chunk of text before the cursor */ - $area.getChunk = function () { - var delimiters = this.options.delimiters.split(''), // array of chars - textBeforeCursor = this.val().substr(0, this.getSelection().start), - indexOfDelimiter = -1, - i, - d, - idx; - for (i = 0; i < delimiters.length; i++) { - d = delimiters[i]; - idx = textBeforeCursor.lastIndexOf(d); - if (idx > indexOfDelimiter) { - indexOfDelimiter = idx; - } - } - if (indexOfDelimiter < 0) { - return textBeforeCursor; - } else { - return textBeforeCursor.substr(indexOfDelimiter + 1); - } - }; - - /* Internal method: get completion. - * If performCycle is true then analyze getChunk() and and getSelection() - */ - $area.getCompletion = function (performCycle) { - var text = this.getChunk(), - selectionText = this.getSelection().text, - suggests = this.suggests, - foundAlreadySelectedValue = false, - firstMatchedValue = null, - i, - suggest; - // search the variant - for (i = 0; i < suggests.length; i++) { - suggest = suggests[i]; - if ($area.options.ignoreCase) { - suggest = suggest.toLowerCase(); - text = text.toLowerCase(); - } - // some variant is found - if (suggest.indexOf(text) === 0) { - if (performCycle) { - if (text + selectionText === suggest) { - foundAlreadySelectedValue = true; - } else if (foundAlreadySelectedValue) { - return suggest.substr(text.length); - } else if (firstMatchedValue === null) { - firstMatchedValue = suggest; - } - } else { - return suggest.substr(text.length); - } - } - } - if (performCycle && firstMatchedValue) { - return firstMatchedValue.substr(text.length); - } else { - return null; - } - }; - - $area.updateSelection = function (completion) { - if (completion) { - var _selectionStart = $area.getSelection().start, - _selectionEnd = _selectionStart + completion.length; - if ($area.getSelection().text === "") { - if ($area.val().length === _selectionStart) { // Weird IE workaround, I really have no idea why it works - $area.setCaretPos(_selectionStart + 10000); - } - $area.insertAtCaretPos(completion); - } else { - $area.replaceSelection(completion); - } - $area.setSelection(_selectionStart, _selectionEnd); - } - }; - - $area.unbind('keydown.asuggest').bind('keydown.asuggest', function (e) { - if (e.keyCode === KEY.TAB) { - if ($area.options.cycleOnTab) { - var chunk = $area.getChunk(); - if (chunk.length >= $area.options.minChunkSize) { - $area.updateSelection($area.getCompletion(true)); - } - e.preventDefault(); - e.stopPropagation(); - $area.focus(); - $.asuggestFocused = this; - return false; - } - } - // Check for conditions to stop suggestion - if ($area.getSelection().length && - $.inArray(e.keyCode, $area.options.stopSuggestionKeys) !== -1) { - // apply suggestion. Clean up selection and insert a space - var _selectionEnd = $area.getSelection().end + - $area.options.endingSymbols.length; - var _text = $area.getSelection().text + - $area.options.endingSymbols; - $area.replaceSelection(_text); - $area.setSelection(_selectionEnd, _selectionEnd); - e.preventDefault(); - e.stopPropagation(); - this.focus(); - $.asuggestFocused = this; - return false; - } - }); - - $area.unbind('keyup.asuggest').bind('keyup.asuggest', function (e) { - var hasSpecialKeys = e.altKey || e.metaKey || e.ctrlKey, - hasSpecialKeysOrShift = hasSpecialKeys || e.shiftKey; - switch (e.keyCode) { - case KEY.UNKNOWN: // Special key released - case KEY.SHIFT: - case KEY.CTRL: - case KEY.ALT: - case KEY.RETURN: // we don't want to suggest when RETURN key has pressed (another IE workaround) - break; - case KEY.TAB: - if (!hasSpecialKeysOrShift && $area.options.cycleOnTab) { - break; - } - case KEY.ESC: - case KEY.BACKSPACE: - case KEY.DEL: - case KEY.UP: - case KEY.DOWN: - case KEY.LEFT: - case KEY.RIGHT: - if (!hasSpecialKeysOrShift && $area.options.autoComplete) { - $area.replaceSelection(""); - } - break; - default: - if (!hasSpecialKeys && $area.options.autoComplete) { - var chunk = $area.getChunk(); - if (chunk.length >= $area.options.minChunkSize) { - $area.updateSelection($area.getCompletion(false)); - } - } - break; - } - }); - return $area; - }; -}(jQuery)); diff --git a/js/jquery.textcomplete.js b/js/jquery.textcomplete.js index 62653a5..66bed0f 100644 --- a/js/jquery.textcomplete.js +++ b/js/jquery.textcomplete.js @@ -489,6 +489,7 @@ this.activateIndexedItem(); } else if (e.keyCode === 13 || e.keyCode === 9) { // ENTER or TAB e.preventDefault(); + this.select(parseInt(this.getActiveItem().data('index'), 10)); } },