2016-06-28 2 views
0

Я создаю метки привязки в списке, используя javascript, но onClick не стреляет. Я знаю, что функция, вызываемая работами onClick, так как я тестировал ее с помощью временной кнопки отправки, чтобы проверить, но мне нужны метки привязки для ее вызова. Это мой код.anchor tag 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