2012-04-27 11 views
0

は、だから私はこれを持っていると言う。..paramsで顧客キーアップハンドラを渡すにはどうすればよいですか?

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()のIの場所を返していません。だから私はそれが触れられていないと仮定します。私は何が欠けていますか? keyup_handlerにeまたはeventを渡すにはどうすればよいですか?

のjQuery 1.4.4

+0

これを[jsfiddle](http://jsfiddle.net)で再現できますか? –

+1

「機能しない」より具体的なものはありますか?私は4.7kの代理店であなたが今より良い質問をする方法を学んだと思うだろう。 –

+0

私の謝罪アンソニー。更新しました。 – Trip

答えて

1

keyup()を見てみた試してみてください。

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

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

非常に曖昧な「動作しません」という文は、対応するキーを離したときに通常のキーアップ機能が妨げられていないことを前提としています。

また、.live()は廃止予定のjQuery関数であり、実際に使用するためのものではありません。 .on()(jQuery 1.7+を使用している場合)または.bind()を使用してください。

+0

ああありがとう!これはうまくいった。私は帰りを捨てなければならなかった。私の他のハンドラーはそれを必要としませんでした。どうもありがとう。 – Trip

0

あなたはkeyup_handlerへの呼び出しからfalseを返すが、それを呼び出す関数から、やってみていないjQueryの

0

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

$(document).live('keyup', function(e){ 
    if (e.which == 27) { 
close_lightbox(<selector-that selects-item>); 
     return false;  
    }; }); 
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) });​ 

FIDDLE

(生きる)は、ドキュメント上でそれを使用する必要がありますなぜわから非推奨とされていませんか? jQueryの古いバージョンのために 、私はこれで十分と思うだろう:

あなたが何らかの形で動的な要素へのドキュメントレベルを作るために管理している場合を除き
$(document).keyup(function(e){ keyup_handler(e, item) });​​​​​​​​​ 

関連する問題