我创建了一个将通过ajax加载的页面。在这个页面上,我创建了一个函数,它将为指定的键分配一些功能[我正在使用jQuery Hot键]。javascript:事件通过ajax加载页面后多次执行。
这里是,我使用将功能分配
function setupKeys()
{
$.each(keyMap, function (event, listener_name){
$(document).bind('keydown', event, listener[listener_name]);
});
}
这将在页面被加载时,每次执行的功能。
如果我第一次加载页面并按下回车键,函数将会执行。假设如果我通过ajax再次加载页面并且引用浏览器并按下回车键,则该函数执行两次。我重复同样的功能将执行三次。
我该如何避免这种情况? keyMap是一个对象
keyMap = {
'Ctrl+s':'save_data',
'return':'test_return',
'tab':'test_return'
};
listener = new Array();
请帮忙。
[对不起英语]
Krish。
谢谢来头。我按照你的建议尝试过,但事件事件仍会多次触发。但是,如果我确保'setupKeys'只执行一次,像marc这样的建议,事件触发只有一次,即使我通过ajax重新加载页面。但我的发布是,我必须在多个页面中使用此功能。 – Nick
我对代码做了一些改变,而不是将事件分配给文档,我试图将它分配给表单,然后尝试'console.log($(“#mainForm”)。data('events'));'它只显示类似这在萤火虫'keydown对象{}' – Nick
我使用jquery 1.3.1 – Nick