2017-06-02 17 views
0

データバインディングとDOM操作にKnockoutJSを利用するHTMLコードがあります。そのうちの1つは、ダブルクリックでハイライト(シングルクリック)してアクションを実行することです。ダブルクリックして非表示にして、新しいDIVの一部のDIVを最初に表示した場合を除いて、すべて正常に動作します。ダブルクリック後の不思議なUI動作

enter image description here

コードハイライト表示し、選択のためのようになります。私は強調表示された要素にclick()イベントを実行することによって、それを「選択解除」に疲れていたが

setTimeout(function(){ 
      $(".first_name").click(); 
      console.log("Clicked!"); 
     }, 3000); 
が動作していないように見える

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

+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

このソリューションは、ページ全体(またはスポーンされたモーダル)のユーザー選択を無効にする場合に適しています。 – JackTheKnife

+0

上記のスタイルを振る舞いたい要素に選択的に適用することができます。https://jsfiddle.net/n46z0dwb –

+0

しかし、私が上記したように、CSSの影響を受けない次のテキストにハイライトが表示されます。 – JackTheKnife

関連する問題