$('#textarea1').textcomplete([
{ // emoji strategy
match: /\B:([\-+\w]*)$/,
search: function (term, callback) {
callback($.map(emojies, function (emoji) {
return emoji.indexOf(term) === 0 ? emoji : null;
}));
},
template: function (value) {
return '<img src="media/images/emoji/' + value + '.png"></img>' + value;
},
replace: function (value) {
return ':' + value + ': ';
},
index: 1,
maxCount: 5
}
]);
// You can append strategies to an already existing textcomplete object.
$('#textarea1').textcomplete([
{ // tech companies
words: ['apple', 'google', 'facebook', 'github'],
match: /\b(\w{2,})$/,
search: function (term, callback) {
callback($.map(this.words, function (word) {
return word.indexOf(term) === 0 ? word : null;
}));
},
index: 1,
replace: function (word) {
return word + ' ';
},
placement: 'top'
}
]);
var elements = ['span', 'div', 'h1', 'h2', 'h3'];
$('#textarea2').textcomplete([
{ // html
match: /<(\w*)$/,
search: function (term, callback) {
callback($.map(elements, function (element) {
return element.indexOf(term) === 0 ? element : null;
}));
},
index: 1,
replace: function (element) {
return ['<' + element + '>', '</' + element + '>'];
}
}
]);
$('#textarea3').textcomplete([
{ // html
mentions: ['yuku_t'],
match: /\B@(\w*)$/,
search: function (term, callback) {
callback($.map(this.mentions, function (mention) {
return mention.indexOf(term) === 0 ? mention : null;
}));
},
index: 1,
replace: function (mention) {
return '@' + mention + ' ';
}
}
], { appendTo: 'body' }).overlay([
{
match: /\B@\w+/g,
css: {
'background-color': '#d8dfea'
}
}
]);
$('.textarea4').textcomplete([
{ // tech companies
words: ['apple', 'google', 'facebook', 'github'],
match: /\b(\w{2,})$/,
search: function (term, callback) {
callback($.map(this.words, function (word) {
return word.indexOf(term) === 0 ? word : null;
}));
},
index: 1,
replace: function (word) {
return word + ' ';
}
}
]);
$('#textarea5').textcomplete([
{ // emoji strategy
match: /\B:([\-+\w]*)$/,
search: function (term, callback) {
callback($.map(emojies, function (emoji) {
return emoji.indexOf(term) === 0 ? emoji : null;
}));
},
template: function (value) {
return '<img src="media/images/emoji/' + value + '.png"></img>' + value;
},
replace: function (value) {
return ':' + value + ': ';
},
index: 1,
maxCount: 5,
header: function (data) {
return '<strong style="text-align: center; display: block;">' + data.length + '</strong>';
},
footer: '<strong style="text-align: center; display: block;">Footer</strong>'
}
]).on('focus', function () {
var textComplete = $(this).data('textComplete');
// Cursor has not set yet. And wait 100ms to skip global click event.
setTimeout(function () {
// Cursor is ready.
textComplete.trigger();
}, 100);
});
$('.contenteditable1').textcomplete([
{ // tech companies
words: ['stunning', 'amazing', 'incredible', 'fantastic', 'fantabulous'],
match: /\b(\w{2,})$/,
search: function (term, callback) {
callback($.map(this.words, function (word) {
return word.indexOf(term) === 0 ? word : null;
}));
},
index: 1,
replace: function (word) {
return word + ' ';
}
}
]);
MIT