링크를 클릭하여 DIV를 표시 할 때 링크의 텍스트를 변경하려고합니다. 사용자가 수정 된 링크 (동일한 링크)를 클릭하면 DIV를 숨겨야합니다.Javascript innerHTML이 onclick 함수를 호출합니다.
그것은 보여주는 것과 함께 작동하지만, "이전 뉴스 숨기기"를 클릭하면 DIV가 0.5 초 동안 숨겨져 다시 표시됩니다.
그것은 내가 기본 하나에 링크의 텍스트를 변경하고있어 라인에서 발생 ("보기 오래된 뉴스 ...")
<script>function showoldnews()
{
document.getElementById('oldnews').style.display = "block";
document.getElementById('oldnewslinkid').innerHTML = '<a href="#" id="oldnewslinkid" onclick="hideoldnews(); return false;">Hide older news</a>';
}
function hideoldnews()
{
document.getElementById('oldnewslinkid').innerHTML = '<a href="#" id="oldnewslinkid" onclick="showoldnews(); return false;">View older news...</a>'; //it calls showoldnews() function for some reason on this line
document.getElementById('oldnews').style.display = "none";
}
</script>
링크
<a href="#" id="oldnewslinkid" onclick="showoldnews(); return false;">View older news...</a>
어떻게 링크를 정의합니까? – Ian
마크 업과 JS로 JSfiddle 또는 Codepen을 만들 수 있습니까? js가 실행되기 전에 DOM이 어떤 상태인지 알면 상황을 진단하는 것이 더 쉬울 것입니다. 관련 메모에서 나는 onClick 이벤트 대신 [event listeners] https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener를 사용할 것을 제안합니다. –
앵커 요소의 'innerHTML'을 지정하지 않고 'outerHTML'을 지정합니다. DOM 검사기를 살펴보고 중첩 된 링크로 끝나면 ... – Bergi