Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将插入符号移动到内容可编辑div中的子li?_Javascript_Jquery - Fatal编程技术网

Javascript 如何将插入符号移动到内容可编辑div中的子li?

Javascript 如何将插入符号移动到内容可编辑div中的子li?,javascript,jquery,Javascript,Jquery,我将插入可编辑的内容div,并希望将插入符号移动到li中 我试图在li上使用jQuery聚焦,但在li上聚焦不起作用。然后,我尝试将tabindex属性添加到li,但focus突出显示了该区域,而没有实际将插入符号移动到li中 任何帮助都将不胜感激,谢谢 如果元素可以包含插入符号,则可以使用以下命令将插入符号移动到该元素: $([selector]).focus(); $([selector]).select(); //include this line if '.focus()' alone

我将
    • 插入可编辑的内容
      div
      ,并希望将插入符号移动到
      li

      我试图在
      li
      上使用
      jQuery
      聚焦,但在
      li
      上聚焦不起作用。然后,我尝试将tabindex属性添加到
      li
      ,但focus突出显示了该区域,而没有实际将插入符号移动到li中


      任何帮助都将不胜感激,谢谢

      如果元素可以包含插入符号,则可以使用以下命令将插入符号移动到该元素:

      $([selector]).focus();
      $([selector]).select(); //include this line if '.focus()' alone isn't working
      
      虽然我不认为
      li
      元素可以包含插入符号,但正如您所说,它位于可编辑的
      div
      中,因此可能可以。如果不知道你的具体情况,我不能肯定


      。。。在经历了很长一段时间的努力之后,我真的开始相信这是不可能的。我最终还是成功了,但没有任何进展。
      ()


      更新 经过更长时间和更努力的尝试(在OP之前,我已经放弃了),终于找到了解决方案。
      是的,它非常黑客化,并且不兼容IE9,但它确实做到了这一点:

      $(窗口).on('load',function()){
      $('#addlistbn')。单击(函数(){
      $('div.input')。追加('ul>
    '); 如果(setCaret('insertedList'){$('#insertedList').remove();}//在setCaret()完全执行之前不要删除 }); 函数setCaret(id){ var range=document.createRange(); range.setStart(document.getElementById(id).childNodes[0],0); 范围。塌陷(真); var selection=window.getSelection(); selection.removeAllRanges(); 选择。添加范围(范围); 返回true; } });
    .input{border:1px solid#ccc;}
    
    插入列表

    一些已经在div中的文本。
    不是肯定的,但相当确定您需要一个输入字段来获取胡萝卜,您仍然可以使用普通元素进行聚焦(我怀疑这是正在发生的),但胡萝卜是输入的一部分。你到底为什么要把胡萝卜放在那里?我把它做成了一个JSFIDLE(很快就把它拼凑在一起了,所以如果你有别的意思,请告诉我),但是你的解决方案似乎不起作用。我更新了我的答案(在水平线下)…不要抱太大希望:(这是可能的,要在Internet Explorer和Firefox(以及Chrome和Safari)中找到合适的位置并使其正常工作是相当困难的).每个浏览器在处理范围时都有自己的小毛病。我在您提供的代码的帮助下使其正常工作了…这是一个疯狂的黑客解决方案…基本上我在li中添加了一个div,将选择设置为,然后删除该div。呵呵,不。遗憾的是,不。我也考虑过这一点,尽管我会选择一个
    而不是一个div。但是我觉得它太乱了,因为我假设人们也可以直接在这个div中键入。然后你会得到的是,只有使用javascript添加的
    li
    才有那些div或span,而通过直接键入它们添加的li将没有他们。