2017-06-02 33 views
0

我有HTML代碼利用KnockoutJS進行數據綁定和DOM操作。其中之一是突出顯示(單擊)並執行雙擊操作。所有工作正常,除非雙擊並隱藏並顯示一些DIV第一個字在新生成的DIV中突出顯示不知道爲什麼。雙擊後奇怪的用戶界面行爲

enter image description here

代碼高亮和選擇是這樣的:

<tr data-bind="attr: { id: resource.id}, 
       css: {'isSelected':$root.selRow() == $data}, 
       click: $parent.highlightRow.bind($parent), 
       event : { dblclick: $parent.selectRow.bind($parent) }" > 

我已經厭倦了爲「取消選擇」,它由一個突出顯示的元素上執行click()事件,但看起來像沒有工作

setTimeout(function(){ 
      $(".first_name").click(); 
      console.log("Clicked!"); 
     }, 3000); 
+0

當任何文字雙擊是爲了突出這個詞的默認行爲。你可以嘗試添加「user-select:none;」到你的CSS來防止它,但它也會阻止用戶故意突出顯示文本來複制它。 –

+0

@JasonSpake我用我的想法更新了OP,但它仍然保持突出顯示 – JackTheKnife

回答

1

你沒有提到你正在使用哪個瀏覽器。

請下列樣式不同的瀏覽器更新的CSS:

-webkit-user-select: none; /* webkit (safari, chrome) browsers */ 
-moz-user-select: none; /* mozilla browsers */ 
-khtml-user-select: none; /* webkit (konqueror) browsers */ 
-ms-user-select: none; /* IE10+ */ 
+0

如果您希望禁用整個頁面(或生成的模式)的用戶選擇,則此解決方案很好,因爲突出顯示將出現在任何不受這些CSS更改影響的第一個單詞上 – JackTheKnife

+0

您可以選擇性地將上述樣式應用於您想要的行爲元素https://jsfiddle.net/n46z0dwb –

+0

但正如我上面提到的 - 突出顯示將出現在任何未受CSS影響的文本上。 – JackTheKnife