jresig의 jquery 단축키를 사용하고 있는데 단축키 하나로 작동하는 것처럼 보입니다. 문제는 데이터베이스에서 단축키 목록을 가지고 있으며이를 읽고 단축키를 동적으로 할당하려고합니다. 그래서 나는 바로 가기 키 및 값의 목록을 가지고이 내 JS입니다 :동적으로 바인딩하는 jquery 단축키
이제 어떻게 내가 키를 누를 때마다, 그것은 그냥 바인딩 마지막 단축키를 경고하는 것이 무엇$(document).ready(function() {
var keyList = [];
$('.hotkey').each(function(){
hotkey = $(this).attr('value');
hotkey = hotkey.substring(1,hotkey.length-1);
myVal = $(this).next().attr('value');
alert("binding " + hotkey);
$(document).bind('keydown', hotkey, function() {
alert("YOU PRESSED " + hotkey);
$('.chosen-category-id').attr('value', hotkey);
$('.chosen-category-name').attr('value', myVal);
});
})
})
. 여기 논리에 문제가 있습니까? 나는 엄청나게 많은 문서를 붙여 넣기하는 것으로부터 자신을 지키고있다. 나는 이것을 동적으로하려고 노력하고있다. 이 작품과 다른하지 않는 이유에
$(document).ready(function() {
var keyList = [];
var keyValues = [];
$('.hotkey').each(function(){
hotkey = $(this).attr('value');
hotkey = hotkey.substring(1,hotkey.length-1);
keyList.push(hotkey);
keyValues.push($(this).next().attr('value')) ;
})
$.each(
keyList,
function(index, key) {
$(document).bind('keydown', key, function() {
alert("O HAI YOU PRESSED " + key);
$('.chosen-category-id').attr('value', key);
$('.chosen-category-name').attr('value', keyValues[index]);
return false;
});
}
)
})
지금 작동하지만 호기심 메신저 :
편집
나는 나의이와 코드를 리팩토링. 바로 가기 키 변수가 마지막 반복을 계속 덮어 씁니까? 또한 첫 번째 코드는 두 번째 코드가 두 번 수행되는 동안 하나의 루프 만 수행하므로 더 효율적으로 보입니다.
마크 업을 게시해도 좋습니까? 가급적 jsfiddle.net에? – Dogbert
마크 업에 대해 알아야 할 사항은 무엇입니까? 그들은 클래스 핫키와 함께 입력 버튼과 "(단축키)"형식의 값을 많이 가지고 있습니다. 또한 질문을 편집했습니다. – corroded
그런데 저 커크처럼 들리는 것은 아닙니다. 나는 마크 업이 올바른 값을 얻는 것과 관련이 없다고 생각합니다. 문제는 바인딩의 할당이었습니다. – corroded