2016-06-28 109 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