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()。所以我假设它没有被触及。我错过了什么?如何将eor传递event给 keyup_handler?

jQuery 1.4.4

4

4 回答 4

1

false从对 的调用返回keyup_handler,但不是从调用它的函数返回,请尝试执行以下操作:

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

如果语句未计算为真,您可能还需要keyup_handler稍微修改一下。return true;if

我在这里假设您非常模糊的“不起作用”声明意味着当您释放相应的键时不会阻止通常的 keyup 功能。

此外,.live()它是一个已弃用的 jQuery 函数,并不真正适用于您使用它的目的。使用.on()(如果您使用的是 jQuery 1.7+)或.bind()其他方式。

于 2012-04-27T14:04:32.813 回答
0

尝试查看jQuery中的keyup()

于 2012-04-27T14:04:14.313 回答
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
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 回答