gpt4 book ai didi

javascript - 将 onclick 函数移至 JS 文件

转载 作者:行者123 更新时间:2023-11-28 19:15:46 24 4
gpt4 key购买 nike

我正在学习 JS 的基础知识。

我有这个链接:

<a href="#comment" onclick="window.location.hash = 'comment'; document.getElementById('comment').focus(); return false;" id="to-comment">Leave a comment</a>

我想将 onclick 移动到函数中的 JS 文件中。为此,我有:

jQuery("#to-comment").click(function() {

window.location.hash='comment';

document.getElementById('comment').focus();

return false;

});

它不工作。我做错了什么?

编辑:澄清我的问题:如何将 onclick 函数成功移动到我的 JS 文件中?

查看此工作 jsFiddle

最佳答案

更新:

我最终得到的是这样的:

$("#to-comment").click(function() {
setTimeout(function() {
$('#comment textarea').focus();
}, 1);
});

html:

<div id="comment">
<textarea></textarea>
</div>
...
<a href="#comment" id="to-comment">Leave a comment</a>

Firefox 似乎与 focus 发生冲突在hashchange之后添加事件,因为它刚刚到达 href 中的 anchor 并将焦点应用于它。第二次聚焦尝试没有产生任何结果,因为它可以防止焦点劫持。

为了避免这个问题,我们可以添加 comment不“保持”焦点的元素(如 div)的 ID。这样,在到达该 anchor 后可以更改焦点。

我仍然发现setTimeout有必要将焦点尝试添加到执行堆栈的末尾,以免在单击 <a href="#comment"... 后发生的 hashchange + focus 事件的生命周期内发生.

我已经在 firefox、safari 和 chrome 中运行了 fiddle,看起来没问题。如果没有 JavaScript, anchor 应该按预期工作。

fiddle :

https://jsfiddle.net/jbuw058z/12/

关于javascript - 将 onclick 函数移至 JS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29879629/

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