2017-12-23 30 views
0

contenteditable="true"이라는 태그가있는 h2 태그가 있습니다. 목표는 '적용'버튼을 클릭하여 contenteditable="false"을 작성하고 h2 텍스트를 초기 값인 h2에 지정하는 '취소'버튼을 사용하여 마지막 편집을 지우고 contenteditable"false"으로 설정합니다. 내 코드 패드는 https://codepen.io/utkapodsousom/pen/dJOMaB 버블 링과 재귀없이 버튼을 작동시키는 방법을 알아낼 수 없습니다.'적용'및 '취소'버튼이있는 편집 가능한 입력란 (너무 많은 재귀)

+0

나는 당신이 어떤 버튼도 가지고 있지 않다는 것을 보았고, '흐림'과 '포커스'이벤트에서만 작동하도록하려고 노력했다. 좀 더 명확하게 요구 사항을 명확히 해 주시면 도와 드리겠습니다. 지금 버튼이있는 작동 샘플이 있지만 원하는지 확실하지 않습니다! –

+0

필드가 편집 가능한 경우에만 단추가 나타납니다. 단어 '예'는 '적용'을 나타내며 '아니요'는 그에 따라 '취소'됩니다. 'blur'및 'focus'이벤트는 필드 외부를 클릭하여 편집 가능한 필드를 편집 할 수 없도록 만드는 데 사용됩니다. 그러나 버튼도 있어야합니다. 나는 그들에게':: before'와':: after'을'[contenteditable = "true"]'selector에 추가함으로써 만들었지 만 더 나은 해결책이있을 수 있습니다. –

답변

0

too much recursion 문제에 대한 대답은이 코드에서 .focus을 두 번 작성하여 함수 자체를 호출한다는 것입니다.

$('.editable').on('click focus', function(e) { 
    $(this).attr('contenteditable', 'true'); 
    $(this).focus(); 
    e.stopPropagation(); 
});