gpt4 book ai didi

javascript - 单击使用 jQuery 选择/取消选择文本

转载 作者:行者123 更新时间:2023-11-30 13:14:45 24 4
gpt4 key购买 nike

我想在 IE9 中创建以下行为:

单击文本框将从文本框中选择文本。再次单击它会取消选择文本。

我从这个链接尝试了以下内容:http://www.codingforums.com/showthread.php?t=105530

var x = 2;

function selectIt(obj)
{
if (x % 2 == 0)
{
obj.select();
}
else
{
if (document.selection)
{
document.selection.empty();
obj.blur();
}
else
{
window.getSelection().removeAllRanges();
}
}
obj.focus();
x++;
}

我也用过这个:http://jsfiddle.net/HmQxZ/1/

但上述解决方案在应用于多个文本框时会出现奇怪的行为。解决此类问题的最佳方法是什么。是否可以在不使用全局变量的情况下执行此操作?

更新:

fiddle 在 Chrome 中有效。但它在 IE9 中不起作用。在 IE9 中,文本被选中,但当您再次单击文本框时,文本不会取消选中/取消突出显示。在 Chrome 中,第二次点击取消选择/取消突出显示文本。

谢谢。

最佳答案

几个文本框的问题在于您的 x 变量是全局的。每个文本框需要一个单独的 x 变量。

您可以使用 map :

var x = {};

function selectIt(obj)
{
var key = ... <-- get name (or id) of textbox from obj somehow to use as key in map
if (!x.hasOwnProperty(key)) x[key] = 0;
if (x[key] % 2 == 0)
{
obj.select();
}
else
{
if (document.selection)
{
document.selection.empty();
obj.blur();
}
else
{
window.getSelection().removeAllRanges();
}
}
obj.focus();
x[key]++;
}

关于javascript - 单击使用 jQuery 选择/取消选择文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12420910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com