0

だから私はこれを持っていると言います..

  keyup_handler: function(e, item){
    if (e.which == 27) {
      close_lightbox(item);
      return false;       
    };
  }

$(document).live('keyup', function(e){ keyup_handler(e, item) });

これは、私がここに置いた console.log() を返しません。したがって、私はそれが触れられていないと仮定します。私は何が欠けていますか?eoreventを keyup_handlerに渡すにはどうすればよいですか?

jQuery1.4.4

4

4 に答える 4

1

falseへの呼び出しから戻っていますkeyup_handlerが、それを呼び出す関数からではありません。次のことを試してください。

$(document).live('keyup', function(e){ return keyup_handler(e, item); });

ステートメントが true と評価されない場合は、keyup_handler少し変更する必要がある場合もあります。return true;if

ここでは、非常に漠然とした「機能しない」というステートメントは、対応するキーを離したときに通常のキーアップ機能が妨げられないことを意味していると想定しています。

また、.live()非推奨の jQuery 関数であり、使用目的を意図したものではありません。.on()(jQuery 1.7+を使用している場合)またはそれ.bind()以外を使用します。

于 2012-04-27T14:04:32.813 に答える
0

これを試してください -->

$(document).live('keyup', function(e){
    if (e.which == 27) {
close_lightbox(<selector-that selects-item>);
      return false;       
    }; });
于 2012-04-27T14:11:00.570 に答える
0

jQueryでkeyup()を見てみる

于 2012-04-27T14:04:14.313 に答える
0
keyup_handler = function(e, item){
    var code = (e.keyCode ? e.keyCode : e.which);
    if (code == 27) {
      close_lightbox(item);
      return false;       
    }
}

$(document).on('keyup', 'dynamic_element', function(e){ keyup_handler(e, item) });​

フィドル

live() は非推奨ですが、ドキュメントで使用する必要がある理由がわかりませんか? 古いバージョンのjQueryの場合、これで十分だと思います:

$(document).keyup(function(e){ keyup_handler(e, item) });​​​​​​​​​

どうにかして文書レベルを動的要素にすることができた場合を除きますか?

于 2012-04-27T14:13:44.747 に答える