我有 div 元素,我在其中加载文本,通常是长文本,所以 div 有滚动条。当光标在它上面时,我可以用鼠标在这个 div 中滚动,但是我不能上下滚动页面,除非我先在 div 内单击。那么有没有办法避免这种点击,在加载文本时从代码中做到这一点?
问问题
5557 次
2 回答
2
这里的答案对我有用:
基本上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 回答