首頁  >  問答  >  主體

javascript - jQuery 或者 Js 如何判断 div 内容是否被选中?

比如我有一个 p,用户选中 p 中的内容,然后alert("ok");

应该如何判断是否选中了 p 内的文本而不是 p外的文本?
jquery 绑定事件不知道应该绑定哪一个。。

希望得到解答!

PHPzPHPz2769 天前782

全部回覆(5)我來回復

  • 数据分析师

    数据分析师2017-10-01 01:19:21

    javascript - jQuery 或 Js 如何判斷 div 內容是否被選取? -PHP中文網問答-javascript - jQuery 或 Js 如何判斷 div 內容是否被選取? -PHP中文網問答

    圍觀一下哦,學習一下。

    回覆
    0
  • 黄舟

    黄舟2017-04-10 13:11:29

    可以给你要探测的<p>添加mouseup()事件。返回一个值来判断是否选中了这一个<p>

    另:附上一小段挺有用的代码,可以获取鼠标选取的文本文字内容:demo on jsFiddle

    露珠可以根据这个代码自己改造一下哈

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 13:11:29

    (见楼主位评论)防复制?

    堆栈溢出有个全面的答案:Prevent selection in HTML。
    HTML属性如果不想挨个写,大可用jQuery或zepto添加之。

    防复制,一层窗户纸而已,挡小白不拦黑客。JS调试手段都不用提了,都能变着花样的玩死防复制。甚至于不用JS,一行Shell都能让文字内容一览无遗:

    lynx --dump 'http://segmentfault.com/q/1010000000351004'

    回覆
    0
  • PHPz

    PHPz2017-04-10 13:11:29

    你是在说选中文本事件吧!
    selection
    http://www.cnblogs.com/rainman/archive/2011/02/27/1966482.html

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 13:11:29

    拿到当前nodeElement对象,再判断就行了。
    可以用nodeType判断,
    targetNode.nodeType == 3,nodeType等于3是代码textNode也就是文本。
    用document.onselectstart事件,具体浏览器还得考虑兼容。
    细节这里就不写了,具体如下:

    <p id="a">11111111111111111111111111</p>
        <script>
            document.onselectstart = function(event){
                var targetNode = event.target || event.srcElement;
                if(targetNode.parentNode.id == 'a' ||targetNode.id == 'a'){
                    alert(targetNode)
                }
            }
        </script>
    

    回覆
    0
  • 取消回覆