사용자가 값을 편집 할 수있는 HTML 표에 필드가 있습니다. 사용자가 해당 필드의 셀 중 하나를 클릭하면 텍스트 영역이이 셀에 나타나고 사용자가 원하는대로 편집하고 텍스트 영역 외부를 클릭하면 일반 텍스트로 돌아갑니다. 알다시피, 표준적인 것들. 내부를 클릭하면 텍스트 영역이 흐림
이 모든
한 가지를 제외하고, onblur 이벤트 onfocus 및 및 로 제대로 작동 : I를 Ex : 내가의 특정 부분을 편집 할 ( 내부의 텍스트 영역을 을 클릭하면 두 글자 사이를 클릭하여 텍스트), 블러 이벤트가 여전히 호출되므로 원하는 텍스트 영역을 닫을 수 없습니다.왜 이벤트가 불려지는지 이해하기 힘듭니다. 이것은 이벤트 전파라는 현상입니까 들었습니까? 이 문제를 해결하려면 어떻게해야합니까?
자바 스크립트
// Create a function that updates a table cell once the textarea loses focus (do not be confused with "losing its Ford Focus")
function createBlurFunction(cell, textArea, functionName) {
return function() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var result = JSON.parse(xmlhttp.responseText)[0];
/* Do stuff with AJAX result */
}
}
// Empty cell
cell.innerHTML = "";
// Send AJAX request
xmlhttp.open("GET","Some AJAX parameters", true);
xmlhttp.send();
}
}
// textArea is already defined somewhere else
textArea.addEventListener('blur', createBlurFunction(cell, textArea, cell.title), false);
감사 :
여기에 상황에 관련된 내 코드 (약간 밝게)입니다!
편집 1 : 나는 내부를 클릭하면 텍스트 영역이 사라지지 않습니다
내가 (당신이 외부를 클릭하면 사라집니다 그 텍스트 영역) 내 웹 페이지에 다른 곳에서 비슷한 구조를 사용하고, 행동이 다른 그것의.
그러나, 나는 복사/위의 코드에서 붙여 넣기를 사용, 그래서 당신은 시간 제한을 취소 제한 시간에 당신의 포커스 청취자의 흐림 기능을 넣을 수있는 코드 오류 또는 뭔가 ...
문제가 있는지는 잘 모르겠지만 마지막 줄에서 'blur'대신 'onblur' 이벤트에 대한 청취자 시도를 했습니까? –
addEventListener는 이벤트 이름 매개 변수에 "on"이 필요하지 않습니다.) –
내 잘못, 무슨 일이 벌어지고 있는지 파악하려고합니다. 당신은'alert()'또는'console.log()'를 실행했을 때를 체크하기 위해 그 함수에 넣으려고 했습니까? 이런 * 원치 않는 이벤트 발생이 어디서 발생했는지 찾을 수 있습니다. –