2016-11-30 44 views
1

我準備了一個小提琴,請看看這個。需要一個正常的光標,當點擊它時

https://jsfiddle.net/s7fxy8jp/

從小提琴,纔有可能閃爍正常光標在文本元素Z(腳本僅可聚焦)代替背景顏色淺綠色的端部。

HTML

<div tabindex="-1" id="scripted">Element Z (script-only focusable)</div> 
<div id="test">Set Focus To Element Z</div> 

CSS

div:focus { 
background-color: Aqua;} 

的JavaScript

document.getElementById('test').onclick = function() { 
document.getElementById('scripted').focus();}; 
+0

使它可編輯div – azad

回答

0

你需要讓你的DIV的內容進行編輯,通過使用contenteditable財產。

<div tabindex="-1" id="scripted" contenteditable="true">Element Z (script-only focusable)</div> 
<div id="test">Set Focus To Element Z</div> 

這會讓你點擊一個閃爍的光標。不幸的是它被放置在線的開頭。您可以通過following the instructions here解決此問題。

這是你的Updated JSFiddle

0

我更新了你的JavaScript功能激活屬性CONTENTEDITABLE,然後移動插入符結束的文本。文本只能從「將焦點設置到元素Z」的焦點進行編輯,否則,它仍然是普通的div。請注意,我用jQuery的更快的操作,該解決方案仍然可以使用純JavaScript

實施

的JavaScript

document.getElementById('test').onclick = function() { 
    var char, sel, 
     $div = $('#scripted'), 
     div = $('#scripted')[0]; 
    $div.attr('contenteditable', 'true'); 
    $div.focus().blur(function() { 
     $div.attr('contenteditable', 'false') 
    }); 
     char = $div.html().length; // character at which to place caret content.focus(); 
    sel = window.getSelection(); 
    sel.collapse(div.firstChild, char); 
}; 
0

試試這個

的Html

<div tabindex="-1" id="scripted" class="sj">Element Z (script-only focusable)</div> 
<div id="test">Set Focus To Element Z</div> 

的CSS:

.sj:hover {background: yellow;} 
相關問題