2012-09-13 20 views
1

我有div元素在其中加載文本,通常是長文本,所以div有滾動條。當光標在上面時,我可以用鼠標在這個div中滾動,但是我不能上下滾動頁面,除非我先在div內部單擊。所以有沒有辦法避免這種點擊,在文本加載時從代碼中完成?啓用div滾動的鍵盤沒有點擊

+0

你可以添加示例代碼,如jsfiddle,來說明嗎?我想幫忙,但我不清楚你的具體問題。 – Todd

+0

是的,我可以,希望它會幫助http://jsfiddle.net/BQQ8C/1/ – david

回答

1

這就是你所描述的。我附加了一個輸入到內容div,然後focus()它,而不是試圖集中div。所以,按下加載文本後,您可以按pg up/dn來滾動div。

HERE IT IS

$("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(); 
}); 
+0

授予,我的回答是有點黑客 - 是啊... – Todd

+0

我試圖找到一些更有效的解決方案,但這不是很糟糕,而且效果很好,謝謝! – david

0

答案在這裏爲我工作:

Set keyboard focus to a <div>

基本上添加tabindex到div:

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

然後編程設置使用聚焦: document.getElementById(「mydiv」)。focus();

從原帖:

tabindex屬性值可以允許一些有趣的行爲。

  • 如果給定的值「-1」,該元件不能被選項卡式到但焦點可以 編程被給予元件(使用element.focus())。
  • 如果給定的值爲0,則可以通過鍵盤對元素進行聚焦,並且 屬於文檔的標籤流。
  • 大於0的值0 創建優先級別,1是最重要的。
+0

你能在這裏引用你的答案中的相關細節嗎? – wogsland