gpt4 book ai didi

javascript - 确定 Chrome 中当前 DOM 元素状态

转载 作者:行者123 更新时间:2023-12-03 03:27:29 25 4
gpt4 key购买 nike

如何确定 Chrome 中 textarea 元素(:focus:hover 等)的状态?

就上下文而言,我正在尝试创建一个 Web 应用程序。在上一页提交表单后,新页面的 textarea 自动出现光标,这是我不希望发生的情况。我尝试使用下面的 jQuery 代码,该代码在 Firefox 中有效,但在 Chrome 中无效:

element = $("#elementID");
if (element.is(":focus")) {
element.blur();
}

在 Chrome 中,代码不会执行 if 语句中的 element.blur()(意味着 if 语句失败)。我已经使用调试器进行了检查,并且 Chrome 中的 id 成功返回了该元素。所以我认为问题出在状态检查语句上。

我认为问题出在元素状态上,我想调查当时的元素状态,最好使用 Chrome 开发者工具。不幸的是,我不知道如何检查当前状态。我只能弄清楚如何检查状态是否等于特定状态。

我四处搜索,但只找到类似 set :hover state 的答案其中讨论如何使用 Chrome 开发工具设置特定状态,而不是如何确定可能是任何状态的当前状态。

我意识到我可以在 JavaScript 中检查此时的每种可能状态,但似乎我缺少检查状态的正确方法。

这是一个 JSFiddle my specific case 。不过,我也有兴趣听到有关确定 textarea 当前状态的一般问题的答案。

感谢您的帮助!

最佳答案

这很可能是操作顺序问题 - 在检测到输入焦点之前执行逻辑。

我在这里重现了这个问题,并通过将代码放入窗口 .load() 来修复它。事件。

var $el = $('textarea');

// will not execute
if ($el.is(':focus')) {
$el.blur();
console.log('outside of window load');
}

// will execute
$(window).load(function() {
if ($el.is(':focus')) {
$el.blur();
console.log('inside window load');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<textarea autofocus></textarea>

关于javascript - 确定 Chrome 中当前 DOM 元素状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46254575/

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