我有几个具有相同类名的输入框。我希望能够获取当前突出显示的文本并准确知道该文本位于哪个输入框中。我当前的方法是这样的:
$(document).on("mouseup", ".element", function(){
var text = "";
var activeEl = document.activeElement;
var activeElTagName = activeEl ? activeEl.tagName.toLowerCase() : null;
if (
(activeElTagName == "textarea") || (activeElTagName == "input" &&
/^(?:text|search|password|tel|url)$/i.test(activeEl.type)) &&
(typeof activeEl.selectionStart == "number")
) {
text = activeEl.value.slice(activeEl.selectionStart, activeEl.selectionEnd);
} else if (window.getSelection) {
text = window.getSelection().toString();
}
});
这为我提供了当前的文本选择,我可以调用 $(this)
来访问突出显示文本所在的元素。
然而,我当前方法的问题是,如果您开始单击,然后拖动到文本框之外,例如文本框左边缘之外,您将在框中突出显示文本,但事件将不注册,因为鼠标单击在输入字段的范围之外结束。我该如何解决这个问题?
最佳答案
您可以将多个事件绑定(bind)到一个处理程序。
所以也只需绑定(bind) mouseleave
即可!
$(document).on("mouseup mouseleave", ".element", function(){
关于javascript - jQuery - 获取输入字段中的当前文本选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43443191/