拖动任何devexpress组件时如何防止其他元素突出显示?

时间:2012-07-10 10:58:14

标签: javascript jquery asp.net google-chrome devexpress

刚刚将我的devexpress版本更新为12.1,现在所有可拖动的元素都会在Chrome(20.0.1132.47米)上突出显示背景元素。

例如,当我拖动分割器时,所有页面都闪烁,当我拖动ASPxPivotGrid或ASPxGridView字段时,字段有时会突出显示并且附近的元素突出显示然后我拖过它们。在ASPxGridview中,当我重新调整列的大小时,如果我将鼠标移动一点点向上或向下几乎所有标题高亮显示。当我在ASPxPivotGrid自定义表单中拖动字段时,还有不需要的高亮显示..

顺便说一句,在IE9,FF11,Opera 11.6中它运行良好。

它是devexpress bug吗?如何修复它,以便拖动不会突出显示背景元素?也许某种全局jquery函数会有帮助吗?

2 个答案:

答案 0 :(得分:3)

您可以使用以下方法阻止整个文档中的选择:

$(document).on("selectstart", false);

您可以通过删除该事件处理程序再次启用选择:

$(document).off("selectstart", false);

您可以在元素的mousedown期间停用选择,并在mouseup期间再次启用它。用户触发mouseup的位置无关紧要,因此请将其附加到documenthttp://jsfiddle.net/Wdj6w/

$("div").on("mousedown", function() {
  $(document).on("selectstart", false);
});

$(document).on("mouseup", function() {
  $(document).off("selectstart", false);
});

答案 1 :(得分:-1)

您还可以通过CSS的user-select属性阻止选择。像这样:

 <div style="-webkit-user-select: none; -ms-user-select: none; -moz-user-select: none;">
   <p>I cannot be selected</p>
 </div>

请参阅this css-tricks article