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

関連する問題