javascript – 如何允许DIV的文本选择,但阻止父DIV的文本选择?

编程之家收集整理的这篇文章主要介绍了javascript – 如何允许DIV的文本选择,但阻止父DIV的文本选择?编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我想允许用户选择位于多个DIV中的文本,这些DIV一个接一个地位于它们之间,并且它们之间存在小的间隙.
问题是,当用户拖动鼠标执行选择时,它们会越过“间隙”,这会导致整个父DIV被暂时选中,直到它们进入下面的子DIV.
这会导致“闪烁”行为和糟糕的用户体验,因为父DIV也有图像,并且暂时也会选择所有图像.
我尝试了在这个论坛中提出的几种方法,包括
-moz-user-select:none; -khtml-user-select:none; -webkit-user-select:none; user-select:none;
unselectable = on,并覆盖onselectstart事件:return false;
不幸的是,如果我要禁用在父DIV中选择文本,所有的孩子DIV立即采用了这种行为,这不是我的意思.
我希望不会选择父DIV,但它的孩子会.
谢谢

更新:

“onselectstart”仅针对父DIV(以及它下面的跨度/段落)调用,但在选择图像时不会调用它.因此,试图操纵它并使用“返回false”;不相关;图像根本不会得到那个事件.

解决方法:

IE的不可选择的expando属性自动为您完成此操作;它不是遗传的.对于其他浏览器,请使用额外的CSS规则.假设以下HTML

<div class="unselectable" unselectable="on">
    Some unselectable text
    <div>Some selectable text</div>
    Some more unselectable text
</div>

使用以下CSS.这定义了一个额外的规则,专门为不可选元素的后代选择文本:

*.unselectable {
   -moz-user-select: -moz-none;
   -khtml-user-select: none;
   -webkit-user-select: none;
   -o-user-select: none;
   user-select: none;
}

*.unselectable * {
   -moz-user-select: text;
   -khtml-user-select: text;
   -webkit-user-select: text;
   -o-user-select: text;
   user-select: text;
}

总结

以上是编程之家为你收集整理的javascript – 如何允许DIV的文本选择,但阻止父DIV的文本选择?全部内容,希望文章能够帮你解决javascript – 如何允许DIV的文本选择,但阻止父DIV的文本选择?所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:
编程之家官方1群
编程之家官方2群
编程之家官方3群
编程之家官方4群

相关文章

猜你在找的jQuery相关文章

最近学习jQuery,所以就写了一个关于中国省市县/区的三级联动菜单,权当相互学习,相互促进,特此记录。 下面是嵌套js的html文件: 效果图: 以下是放在服务器的有关地名xml文件:
1 无穷滚动(无限加载)与分页的比较 现在越来越多的网站或者博客的列表页开始抛弃传统的分页技术,大致的原因在于,分页明显地增加了用户的操作行为以及页面加载等待的时间,而网页浏览者往往没什么耐心。 而无
此前在浏览一些网站的时候,发现他们网站的图片都是你“鼠标”滚到哪,图片才会加载显示。当时觉得好神奇,怎么会这么“跟手”呢。核心原理是:1 设置一个定时器,计算每张图片是否会随着滚动条的滚动,而出现在视
1.开关灯效果 &lt;!DOCTYPE html&gt; &lt;html lang=&quot;en&quot;&gt; &lt;head&gt; &lt;meta charset=&quot;U
什么是事件冒泡 &lt;div &quot;width: 200px;height: 200px;background: red;margin: 200px auto;&quot; onc
Allot Transfer $(document).ready(function() { $(&#39;input[type=radio][name=bedStatus]&#39;).change(
目录验证码实现效果如下:生成验证码的方法:生成验证码随机背景颜色在html中引用完整源码下载地址:验证码实现效果如下:生成验证码的方法:function code_draw() { var canvas_width = $('#canvas').width(); var canvas_height = $('#canvas').height(); var canvas = document.getElementById("canvas"); //获取到canvas
比如info是一个字符串变量,如果需要去该变量的值,需要使用下面的语句:语法:alert($(&quot;#&quot;+id).val());例如:使用id设置隐藏控件 $(&quot;.img&quot;).mouseover(function(event){ var html=event.target.innerHTML; //alert(html); var aid=html.match(/&amp;lt;a id=&quot;(...
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注