4

我有 div 元素,我在其中加载文本,通常是长文本,所以 div 有滚动条。当光标在它上面时,我可以用鼠标在这个 div 中滚动,但是我不能上下滚动页面,除非我先在 div 内单击。那么有没有办法避免这种点击,在加载文本时从代码中做到这一点?

4

2 回答 2

2

这里的答案对我有用:

将键盘焦点设置为 <div>

基本上tabindex在 div 中添加一个:

<div id="mydiv" tabindex="-1">

然后使用以下方式以编程方式设置焦点: document.getElementById("mydiv").focus();

从原来的帖子:

tabindex 值可以允许一些有趣的行为。

  • 如果给定值“-1”,则元素不能被制表符,但焦点可以通过编程方式赋予元素(使用 element.focus())。
  • 如果给定值 0,则元素可以通过键盘获得焦点并落入文档的选项卡流中。
  • 大于 0 的值创建优先级,其中 1 是最重要的。
于 2017-02-20T22:47:32.923 回答
1

正如你所描述的,就是这样。我将输入附加到内容 div,然后对其进行 focus(),而不是尝试聚焦 div。因此,在按下加载文本后,您可以立即按下 pg up/dn 来滚动 div。

这里是

 $("div").append('<input type="text" id="focusDiv">');
    /*
 Here I need to have some code which gives "focus to the div, so if I press the load text and then immediately PageDown key, sthedvis scrolls down.

 $("button").on("click", function (e) {
    e.preventDefault();
    $("div").html("Very long text...");
    $("div").append('<input type="text" id="focusDiv">');
    $('#focusDiv').focus();
});
于 2013-03-27T15:59:26.833 回答