https://stackoverflow.com/a/7222592/2332251など、いくつかの質問を見てきました
私はまだ持っているコードとそれを調整するのに苦労しています。
現時点では、入力を開始したときにユーザー名を検索するために、次の方法が完全に機能します。
$(function() {
$("#appendedInputButton").autocomplete({
minLength: 2,
source: "searchusers.php"
});
});
searchusers.php の関数は、データベースからユーザー名を出力します。
私が言ったように、私は他の @mention ソリューションをうまく機能させるのに苦労しています。他のソリューションをコピーして詳細を交換しようとしましたが、何もうまくいかないようです。
そう...
- 最初に「@」記号を入力したときにのみ読み込まれるようにするには、現在のオートコンプリート スクリプトに何をする必要がありますか?
- 投稿で複数の @メンションを使用できるようにしたい
- (オプション)オートコンプリートがユーザー名を提案し、リストからユーザー名を選択すると、投稿に表示され、ユーザー名の前に@記号が追加されたままになります。たとえば、「こんにちは@ジョン、@記号はまだあなたのユーザー名」
さらに情報が必要な場合は、コメントしてください。さらに情報を提供します:)
編集それを機能させるための構文が本当にわかりません。たとえば、上に投稿した回答例を使用すると、次のようになりました (ただし、機能しません)。
function split(val) {
return val.split(/@\s*/);
}
function extractLast(term) {
return split(term).pop();
}
function getTags(term, callback) {
$.ajax({
url: "searchusers.php",
data: {
filter: term,
pagesize: 5
},
type: "POST",
success: callback,
jsonp: "jsonp",
dataType: "jsonp"
});
}
$(document).ready(function() {
$("#appendedInputButton")
// don't navigate away from the field on tab when selecting an item
.bind("keydown", function(event) {
if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) {
event.preventDefault();
}
}).autocomplete({
source: function(request, response) {
if (request.term.indexOf("@") >= 0) {
$("#loading").show();
getTags(extractLast(request.term), function(data) {
response($.map(data.tags, function(el) {
return {
value: el.name,
count: el.count
}
}));
$("#loading").hide();
});
}
},
focus: function() {
// prevent value inserted on focus
return false;
},
select: function(event, ui) {
var terms = split(this.value);
// remove the current input
terms.pop();
// add the selected item
terms.push(ui.item.value);
// add placeholder to get the comma-and-space at the end
terms.push("");
this.value = terms.join("");
return false;
}
}).data("autocomplete")._renderItem = function(ul, item) {
return $("<li>")
.data("item.autocomplete", item)
.append("<a>" + item.label + " <span class='count'>(" + item.count + ")</span></a>")
.appendTo(ul);
};
});
searchusers.php、#appendedInputButton、およびその他の特定の情報はどこに挿入すればよいですか? これが理にかなっていることを願っています。