Javascript Zepto中的绑定事件
我希望将jQuery中的以下插件转换为用于 现在我正在使用coffeescript,但我也将包括Javascript翻译。Zepto有一个用于Javascript Zepto中的绑定事件,javascript,jquery,coffeescript,hotkeys,zepto,Javascript,Jquery,Coffeescript,Hotkeys,Zepto,我希望将jQuery中的以下插件转换为用于 现在我正在使用coffeescript,但我也将包括Javascript翻译。Zepto有一个用于keyup、keydown和keypress事件的绑定和事件API(请参阅),但是绑定一个新的自定义事件(在本例中为keyHandler)来接受这些事件有点棘手,我不太理解 我已经经历了这么多。我在最后一行遇到了一些问题,特别是对于jQuery的特殊定制处理程序,我认为Zepto别无选择 有人能帮我让Zepto在每次我写以下内容时都给keyHandler打
keyup
、keydown
和keypress
事件的绑定和事件API(请参阅),但是绑定一个新的自定义事件(在本例中为keyHandler
)来接受这些事件有点棘手,我不太理解
我已经经历了这么多。我在最后一行遇到了一些问题,特别是对于jQuery的特殊定制处理程序,我认为Zepto别无选择
有人能帮我让Zepto在每次我写以下内容时都给keyHandler打电话吗
$('*').bind('f', function() { console.log("pressed the 'f' key"); });
$('*').bind('keypress', 'f', function() {...});
因此,如果我甚至在网页上按f键,将该消息登录到控制台。在您的代码中,您的意思是说:
$('*').bind('f', function() { console.log("pressed the 'f' key"); });
$('*').bind('keypress', 'f', function() {...});
您的要点不再可用,但查看原始插件,它取决于jQuery.event.special,这是Zepto不支持的一种功能
我建议使用类似Zepto.fn.bindHotkey(事件、键、函数)的东西扩展Zepto。例如:
Zepto.fn.bindHotkey = function(event, keys, func) {
var handler = {data: keys, handler: func};
keyHandler(handler);
this.bind(event, handler.handler);
};
请注意,我不会尝试将任何事件绑定到“*”。这会将事件附加到页面上的每个元素。因此,如果您选择了一个文本区域并键入“f”,则文本区域、其父级以及每个父级(直到顶部)都将执行事件处理程序。页面事件通常可以绑定到窗口或文档对象。在代码中,您的意思是说:
$('*').bind('f', function() { console.log("pressed the 'f' key"); });
$('*').bind('keypress', 'f', function() {...});
您的要点不再可用,但查看原始插件,它取决于jQuery.event.special,这是Zepto不支持的一种功能
我建议使用类似Zepto.fn.bindHotkey(事件、键、函数)的东西扩展Zepto。例如:
Zepto.fn.bindHotkey = function(event, keys, func) {
var handler = {data: keys, handler: func};
keyHandler(handler);
this.bind(event, handler.handler);
};
请注意,我不会尝试将任何事件绑定到“*”。这会将事件附加到页面上的每个元素。因此,如果您选择了一个文本区域并键入“f”,则文本区域、其父级以及每个父级(直到顶部)都将执行事件处理程序。页面事件通常可以绑定到窗口或文档对象