키 누르기 및 keydown 이벤트를 바인딩하려는 지시문이 있지만 어떤 이유로 등록하지 않습니다.keydown 및 keypress 이벤트가 각도로 작동하지 않습니다.
element.bind("keydown keypress", function (event) {
console.log("here");
});
실마리가 될 수있는 단서는 무엇입니까?
파일 selectMe.js
에서이 plnkr을 보면 바인딩을 볼 수 있습니다.
키 누르기 및 keydown 이벤트를 바인딩하려는 지시문이 있지만 어떤 이유로 등록하지 않습니다.keydown 및 keypress 이벤트가 각도로 작동하지 않습니다.
element.bind("keydown keypress", function (event) {
console.log("here");
});
실마리가 될 수있는 단서는 무엇입니까?
파일 selectMe.js
에서이 plnkr을 보면 바인딩을 볼 수 있습니다.
테이블 요소에 바인딩하는 경우 테이블에 포커스가 없으므로 키 이벤트를받지 못합니다. 포커스를 가질 수있는 요소에 대한 정보는 this question을 참조하십시오.
그러나 이벤트는 거품처럼 보이지 않으므로 보이지 않는 입력 또는 앵커 요소를 추가하고 거품이 일 때 키보드 이벤트를 가져 오거나 문서 요소를 수신하여 처리되지 않은 이벤트를 수신 할 수 있습니다. 당신은 대신 컨트롤 키를 직접 추적의 키 이벤트에 ctrlKey
플래그를 확인할 수 있습니다
var doc = angular.element(document);
doc.on('keyup', function(e) {
if (e.ctrlKey) {
if (e.keyCode === cKey) {
$scope.valueToBeCopied = e.target.value;
console.log('copy: valueToBeCopied: ' + $scope.valueToBeCopied);
}
if (e.keyCode === vKey) {
e.target.value = $scope.valueToBeCopied;
console.log('paste: valueToBeCopied: ' + $scope.valueToBeCopied);
}
}
});
당신이 시도 될 것으로 보인다 것과 불구 데 도움이 얼마나 모른다. 어떤 요소가 가상의 '포커스'를 가지고 있는지 추적해야합니다.
제이슨 .. 조용히 작동하지 않습니다. 이것은 단순히 테이블의 모든 셀을 제공하고 클릭 한 셀이 아닙니다 .. 여기 plnkr을 볼 수 있습니다 http://plnkr.co/edit/0NuKiaKYxmDl2NVSTaDJ goto file ctMyCell .js – runtimeZero
행을 선택하는 위치가 표시되지 않습니다. 이것이 내 마지막 진술에 관한 것입니다. 행을 선택으로 표시하려면 무언가를해야합니다. 즉, 'selected'클래스를 테이블 행에 추가하거나 선택된 속성을 범위 또는 행 객체에 추가해야합니다. 나는 당신의 질문에 당신이 나를 돕기 위해 무엇을하려고하는지에 대해 충분한 세부 사항을 가지고 있다고 생각하지 않습니다. 이 질문은 독자적으로 유용 할만큼 충분히 제한적이라고 생각하기 때문에 더 자세한 내용으로 다른 질문을 작성해야합니다. –
<table>
에 tabindex="0"
을 추가하십시오. 이를 통해 <table>
을 클릭하거나 tab
을 눌러 초점을 맞출 수 있습니다. 그러나 페이지가로드되는 즉시 키 이벤트 수신을 시작하는 데 관심이있을 수 있습니다. 그런 다음 이벤트를 document
에 바인드해야합니다.
angular.element(document).bind(...)
템플릿의 지시문은 어디에 있습니까? – Shomz
미안 .. 미안 .. 내가 디버깅 중이 었어 .. 다양한 이벤트 중이 야 .. 다시 넣어 줘. 파일을 확인해 봐. selectMe.js – runtimeZero
기본 지시문을 사용하지 않는 이유가 있니? http://docs.angularjs.org/api/ng/directive/ngKeypress 또한 무엇을 묶으려고합니까? 핵심 행사를 갖기 위해 집중할 무언가가 필요하지 않습니까? – hassassin