jQuery MentionsInput 是一个基于 jQuery 的插件,用于在输入框中实现提及(@)功能,类似于社交媒体中的用户提及功能。它允许用户在输入框中输入@符号后选择用户,并将选择的内容格式化为特定的样式。
在移动设备上不起作用可能有以下几个原因:
// 在初始化插件后添加触摸事件支持
$('textarea').mentionsInput({
// 配置选项
});
// 添加触摸事件支持
$('.mentions-autocomplete-list').on('touchstart', 'li', function(e) {
e.preventDefault();
$(this).click();
});
考虑使用专门为移动设备设计的插件,如:
/* 确保下拉菜单在移动设备上显示正常 */
.mentions-autocomplete-list {
position: absolute;
z-index: 9999;
width: 100%;
max-height: 200px;
overflow-y: auto;
-webkit-overflow-scrolling: touch; /* 启用iOS平滑滚动 */
}
.mentions-autocomplete-list li {
padding: 10px;
font-size: 16px; /* 增大字体便于触摸 */
line-height: 1.5;
}
// 确保输入框获得焦点时插件能正常工作
$('textarea').on('focus', function() {
$(this).mentionsInput('checkForMention');
});
如果上述方法无效,可以考虑自己实现一个简单的提及功能:
$(document).ready(function() {
var $textarea = $('#myTextarea');
var $userList = $('#userList');
$textarea.on('input', function() {
var val = $textarea.val();
var lastChar = val.slice(-1);
if (lastChar === '@') {
$userList.show();
}
});
$userList.on('touchstart click', 'li', function() {
var username = $(this).data('username');
var currentVal = $textarea.val();
$textarea.val(currentVal + username + ' ');
$userList.hide();
});
});
提及功能常用于:
优势:
局限:
没有搜到相关的文章