jQuery热键插件使用bind

时间:2012-12-26 06:50:58

标签: jquery event-handling hotkeys jquery-hotkeys

我正在使用由John Resig(jQuery先生)编写的jQuery hotkeys plugin。但是,它使用了bindbind现已被on替换为$(document).bind('keyup', 'alt+a', function(evt){...});

标准代码是:

bind

我尝试将on更改为{{1}},但它无效。有解决方法,还是无关紧要?

我也想知道将处理程序附加到文档是否总是最好的方式。

2 个答案:

答案 0 :(得分:4)

on需要额外的DOM arg http://api.jquery.com/on/,所以请写null

尝试

$(document).on('keyup', null, 'alt+a', function(){}

答案 1 :(得分:0)

该插件重新声明了jQuery的.bind.unbind方法的使用,如以下几行所示

jQuery.fn.bind = function(){
jQuery.fn.unbind = function(){

我们可以简单地做到

jQuery.fn.on = function(){
jQuery.fn.off = function(){

这也需要改变 -

jQuery.fn.__bind__ = jQuery.fn.bind;
jQuery.fn.__unbind__ = jQuery.fn.unbind;

jQuery.fn.__bind__ = jQuery.fn.on;
jQuery.fn.__unbind__ = jQuery.fn.off;

它被重复使用了几次,所以替换bind 注意的任何出现 - 不要替换__bind,只用bind出现,然后{ {1}}关闭时出现。

Or just use the code in my jsFiddle