所以说我有这个......
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()我放在这里。所以我认为它没有被触及。我错过了什么?如何将e
或event
传递给keyup_handler?
jQuery 1.4.4
答案 0 :(得分:1)
您正在从false
的调用中返回keyup_handler
,但不会从调用它的函数返回$(document).live('keyup', function(e){ return keyup_handler(e, item); });
,请尝试执行以下操作:
keyup_handler
如果return true;
语句的评估结果为真,您可能还需要将if
略微修改为{{1}}。
我在这里假设您非常模糊的“不起作用”声明意味着当您释放相应的密钥时,不会阻止通常的密钥更新功能。
此外,.live()
是一个不推荐使用的jQuery函数,并不适合您正在使用它的内容。使用.on()
(如果您使用的是jQuery 1.7+)或.bind()
。
答案 1 :(得分:0)
试着在jQuery中查看keyup()
答案 2 :(得分:0)
试试这个 - >
$(document).live('keyup', function(e){
if (e.which == 27) {
close_lightbox(<selector-that selects-item>);
return false;
}; });
答案 3 :(得分: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) });
除非你以某种方式设法将文档级别变为动态元素?