이 패턴에 대한 많은 게시물을 보았지만 여전히 광산 코드에서 작동하지 않는 이유를 이해하지 못했습니다. 우분투 10.04에서 Chromium 사용하기.innerHTML 대체 패턴이 작동하지 않습니다.
function showDescription(){
var description = document.createElement('div'),
eventTarget = window.event.target,
newHTML = description.innerHTML;
description.id = 'description';
switch(eventTarget.getAttribute('data-par')){
case 'links': newHTML = newHTML.replace(newHTML, 'links')
break;
case 'images': newHTML = newHTML.replace(newHTML, 'images')
break;
};
console.log(newHTML);
parentElement.insertBefore(description, parentElement.firstChild.nextSibling);
};
var descParLi = descPars.getElementsByTagName('li');
for (var i = 0; i < descParLi.length; i++){
descParLi[i].addEventListener("click", showDescription);
};
이 코드는 다른 기능에 포함되어 있습니다. 이상하게도, 콘솔에서 newHTML의 가치를 알지만, html에는 아무런 변화가 없다는 것이 문제입니다. 뭐가 잘못 되었 니? 어떻게 고치는 지?
'window.event'는 인터넷 익스플로러에서만 유효합니다. "addEventListener()"를 추가하면 이벤트 객체가 함수의 첫 번째 매개 변수로 전달됩니다 (흥미롭게도 Internet Explorer에서 ** 작동하지 않음). – Pointy
약간의 바이올린을 만들 수 있습니까? – ChristopheCVB
@Pointy : 이상하게도 (전날 배웠던) Chrome은 핸들러에 대한 인수 외에도'event'를'window'의 속성으로 만들어 이러한 점에서 IE를 모방합니다. http://jsfiddle.net/SdMX9/ – user113716