내가 이런 몇 앵커 요소 productions
에 루프하여 addEventListener를 추가 '클릭' 모든 XHR 페칭을 수행 한 후 기본 앵커 링크를 따릅니다.하여 addEventListener은
function production_e()는 "생산"이 클릭되었는지 테스트 한 다음 생산의 설명이 포함되어 있는지 확인합니다. 그렇지 않은 경우 XHR을 시작하여 설명을 검색하고 프로덕션 요소에 삽입합니다.
function production_e(e) {
e.preventDefault();
if(!current_show) {
current_show = this;
if(!this.getElementsByClassName('production_description')[0])
get_production_article(this,show_description);
}
}
get_production_article = function(production,callback) {
var req = new XMLHttpRequest();
req.onreadystatechange = function(e) {
if(req.readyState === 4 && req.status === 200) {
install_article(production,req.responseText);
callback(production);
}
}
var pl = production.getElementsByClassName('production-link')[0];
req.open('GET',pl.href + '-article',true);
req.send();
}
install_article
함수는 소자를 노출 스타일을 설정하고 DOM show_description
콜백 함수에서 responseText에 삽입한다.
그러나 을 사용하면 왼쪽 마우스 클릭이 모든 동일한 작업을 수행하는 것처럼 보이지만 다른 페이지의 기본 앵커 링크를 따라갑니다. 흥미롭게도 마우스 오른쪽 버튼을 클릭하면 왼쪽 마우스 클릭을 수행 할 것으로 예상됩니다.
어떻게 든 preventDefault() 함수가 통과하지 않거나 다시 트리거되지만 그 일이 어떻게 발생하는지 알 수 없습니다. 내가 뭘 놓치고 있니?
음을의 이는 MouseDown 디폴트가 발생하는'click' 이벤트를 방지하지 않으며 그것으로 기본값을의 방지 :이 codepen 도움이된다면
e.currentTarget.dataset.article
참조하십시오. – plalx