2

特定の div を除くドキュメント全体を選択しようとしています。私の考えでは、以下のコードは機能するはずですが、そうではありません。誰かが私が間違っていることを見ることができますか?

$(document:not("#test")).bind('keydown',function(e){
  switch(e.which) {
  case 8:
  $("#status").append("<br/>captured");
  break;
  default:
  break;
  }
});

使用する HTML:

<textarea id="test" ></textarea><br/>
<input type="text" id="message"/>
<div id="status"></div>

私もこれのいくつかの変種を試しました

//$("*:not(#message)").bind('keydown',function(e){
4

3 に答える 3

5

オブジェクト ( document) と jQuery セレクター ( ) を混在させています:not("#test")。セレクターは文字列内にある必要があるため、無効な構文になります。

id="test"実行された場合、(文書オブジェクトには HTML 属性がないため、なし) を持つものを除いて、すべての文書オブジェクト (唯一のもの) を選択したことになります。

div 以外の body 内のすべての要素を実際に選択したいのではないでしょうか?

$('body *:not(#test)')
于 2012-10-02T21:49:52.633 に答える
1

イベント委任はこれを簡単にする必要があります。

$(document).on("keydown",":not(#message)",function(){
    alert("worky");
});
于 2012-10-02T21:52:58.373 に答える
0

$('*:not(#test)', 'html')セレクターで機能するはずです。たとえば、 #test が div の場合、 * を div に置き換えることができます。その方が高速で、jquery はすべてのコントロールを無駄にチェックしません。

于 2012-10-02T22:00:14.023 に答える