2012-07-10 80 views
1

剛剛將我的devexpress版本更新至12.1,現在所有可拖動元素都會亮起Chrome上的背景元素(20.0.1132.47米)。如何防止其他元素在拖動任何devexpress組件時突出顯示?

例如,當我拖動拆分器時,所有頁面都閃爍,當我拖動ASPxPivotGrid或ASPxGridView字段時,字段有時會突出顯示並且附近的元素突出顯示,然後拖過它們。在ASPxGridview中,當我重新調整列的大小時,以及如果將鼠標移動一點點就可以調高或調低幾乎所有的標題高光。當我在ASPxPivotGrid自定義表單中拖動字段時,也有不必要的突出顯示。

順便說一下,在IE9,FF11,Opera 11.6,它工作正常。

它是devexpress錯誤嗎?我怎樣才能修復它,所以拖動不會突出顯示背景元素?也許一些有點全球性的jQuery功能會有所幫助?

+0

以「突出」你的意思是元素都被選擇的背景是什麼?如果是這樣,您可以嘗試使用'$(document).on(「selectstart」,false)'和'.off'來防止在拖動過程中進行選擇。 (雖然我沒有devexpress的經驗) – pimvdb 2012-07-10 12:19:18

+0

@pimvdb是的,我的意思是他們被選中。是的,'$(document).on(「selectstart」,false)'和'.off()'確實很好用,現在我只需要找到應該叫它們的方式。 P.S.爲什麼你寫了評論而不是答案? – Bomberlt 2012-07-11 07:38:36

回答

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); 
}); 
+0

謝謝,我結束了添加此功能調用對EndCallback所有網格: '函數fixchrome(){ 如果($ .browser.safari){ $( 「dxpgHeader_DevEx,.dxsplVSeparator_DevEx,.dxgvHeader_DevEx。」)上(。 「mousedown」,function(){(document).on(「selectstart」,false); }); }; }' – Bomberlt 2012-07-23 05:31:22

+1

@Bomberlt:你確定嗎?這將一次又一次地綁定處理程序,並且不會將其刪除。 – pimvdb 2012-07-24 19:38:26

+0

哦,是的,我忘了添加.off()太:) – Bomberlt 2012-07-25 07:34:57

-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

相關問題