jQuery实现在textarea指定位置插入字符或表情的方法
```javascript
(function($) {
$.fn.extend({
insertAtCaret: function(myValue) {
var $t = $(this)[0]; // 获取textarea的原生DOM对象
this.focus(); // 让textarea获取焦点
var sel = document.selection.createRange(); // 获取当前选中的范围
this.focus(); // 再次让textarea获取焦点,确保光标位置正确
if ($t.selectionStart || $t.selectionStart == '0') { // 判断textarea是否有选中的文本
var startPos = $t.selectionStart; // 获取选中的起始位置
var endPos = $t.selectionEnd; // 获取选中的结束位置
var scrollTop = $t.scrollTop; // 保存滚动条的位置,以便恢复原来的位置
this.focus(); // 让textarea获取焦点,确保光标位置正确
$t.scrollTop = scrollTop; // 恢复滚动条的位置
} else { // 如果textarea没有选中的文本,则在尾部添加文本
this.value += myValue; // 直接在尾部添加文本
this.focus(); // 让textarea获取焦点,确保光标位置正确(虽然这里可能不需要)
}
}
}
})
})(jQuery); // 注意这里的jQuery是用来给这个函数传入jQuery对象本身的参数,便于后面的链式调用等操作。因为我们已经处于jQuery环境中了,所以这里可以省略不写jQuery。但保留写法是为了保持代码的完整性。在实际开发中,我们通常会省略这部分内容。避免重复引用jQuery对象本身。
编程语言
- jQuery实现在textarea指定位置插入字符或表情的方法
- php生成唯一的订单函数分享
- linux mint下安装phpstorm2020包括JDK部分的教程详解
- JS实现一次性弹窗的方法【刷新后不弹出】
- 如何更改Linux(CentOS)系统下的MySQL数据库目录位置
- javascript弹出窗口中增加确定取消按钮
- js实现索引图片切换效果
- IDEA连接mysql又报错!Server returns invalid timezone. G
- 在vue中v-bind使用三目运算符绑定class的实例
- JavaScript里 ==与===区别详解
- SQLSERVER中忽略索引提示
- javascript实现实时输出当前的时间
- js遮罩效果制作弹出注册界面效果
- flex的tree动态加载大量数据与滚动条相关问题探讨
- asp.net 初始化文本框的小例子
- 各种系统中密码文件的位置