2016-06-28 5 views
0

javascript를 사용하여 목록에 앵커 태그를 만들지 만 onClick이 실행되지 않습니다. onClick 작업에 의해 호출되는 함수를 알고 있습니다. 테스트하기 위해 임시 제출 단추로 테스트 했으므로, 앵커 태그를 호출해야합니다. 이것은 내 코드입니다.앵커 태그 onclick이 작동하지 않습니다.

function getTablePages(div,pages,index){ 
index -= 1; 
var mydiv; 
switch (div){ 
    case 'openSales': mydiv = document.getElementById("openSalesDiv"); break; 
    case 'leadsSales': mydiv = document.getElementById("leadsSalesDiv"); break; 
    case 'overdueTickets': mydiv = document.getElementById("overdueTicketsDiv"); break; 
    case 'readyToBill': mydiv = document.getElementById("readyToBillDiv"); break; 
    case 'overdueSales': mydiv = document.getElementById("overdueSalesDiv"); break; 
    case 'overdueProjects': mydiv = document.getElementById("overdueProjectsDiv"); break; 
    case 'wfcTickets': mydiv = document.getElementById("wfcTicketsDiv"); break; 
    case 'openTickets': mydiv = document.getElementById("openTicketsDiv"); break; 
    case 'assignedPM': mydiv = document.getElementById("assignedPMDiv"); 
} 
var ulTag = document.createElement('ul'); 
ulTag.className = 'Pagination'; 
ulTag.style = 'display:block;'; 
var liTag = document.createElement('li'); 
var aTag = document.createElement('a'); 
aTag.setAttribute('href',"#"); 
aTag.innerHTML = "<"; 
liTag.appendChild(aTag); 
ulTag.appendChild(liTag); 
for (v = 0; v < pages; v++){ 
    if(v+6 >= index && v < index+5){ 
     var liTag = document.createElement('li'); 
     var aTag = document.createElement('a'); 
     aTag.setAttribute('href',"#"); 
     switch (div){ 
      case 'openSales': aTag.onClick = "getOpenSalesClick(this.innerHTML)"; break; 
      case 'leadsSales': aTag.onClick = "getleadsSalesClick(this.innerHTML)"; break; 
      case 'overdueTickets': aTag.onClick = "getOverdueTicketsClick(this.innerHTML)"; break; 
      case 'readyToBill': aTag.onClick = "getReadyToBillProjectsClick(this.innerHTML)"; break; 
      case 'overdueSales': aTag.onClick = "getOverdueSalesClick(this.innerHTML)"; break; 
      case 'overdueProjects': aTag.onClick = "getOverdueProjectsClick(this.innerHTML)"; break; 
      case 'wfcTickets': aTag.onClick = "getWFCTicketsClick(this.innerHTML)"; break; 
      case 'openTickets': aTag.onClick = "getOpenTicketsClick(this.innerHTML)"; break; 
      case 'assignedPM': aTag.onClick = "getAssignedPMClick(this.innerHTML)"; 
     } 
     aTag.innerHTML = (v+1); 
     liTag.appendChild(aTag); 
     ulTag.appendChild(liTag); 
    } 
} 
    var aTag = document.createElement('a'); 
aTag.setAttribute('href',"#"); 
aTag.innerHTML = ">"; 
liTag.appendChild(aTag); 
ulTag.appendChild(liTag); 
mydiv.appendChild(ulTag); 
} 

function getOpenSalesClick(x){ 
document.getElementById('openSalesDiv').innerHTML = ''; 
} 

<input type='submit' onclick="getOpenSalesClick()" value="Delete"></input> 
+1

aTag.innerHTML = "<"; // <잘못된 HTML – edwin

+0

정말입니까? 왜냐하면 내가 "<"하나를 포함하여 모든 앵커 태그가 나타나기 때문에 프로그램을 실행할 때 onclick 함수가 작동하지 않기 때문입니다. – DennisOakdale

+0

텍스트를 설정하는 경우'.textContent'를 대신 사용하십시오. – djskinner

답변

0

JavaScript에서는 이벤트 핸들러가 소문자 인 경향이 있습니다. onClick 대신 onclick을 시도하십시오. onclick 핸들러는 또한 작동하지 문자열을 참조 할 필요가 있으며, 아마도 당신은 기능 getOpenSalesClick 오히려 getOpenSalesClick()의 결과보다는 각 클릭에 호출하려는

case 'openSales': aTag.onclick = getOpenSalesClick; 
+0

나는 그 문제가 있었는지 확인하기 위해 게시하기 전에 먼저 onClick으로 변경했으나 작동하지 않았습니다. – DennisOakdale

+0

'onclick' 또한 문자열이 아닌 함수를 참조해야합니다 – djskinner

+0

case 'openSales': aTag.onclick = getOpenSalesClick (this.innerHTML); 단절; – DennisOakdale

관련 문제