2016-07-05 74 views
0

當我使用javascript構建動態表時,錨鏈接不工作。錨定標記不適用於動態表

代碼:

  $(".genareteEmail").click(
        function() { 
         alert("sdsds"); 
         var incidentNo = $(this).attr('dataId'); 

         $.ajax({ 
          url : "generate?incident=" + incidentNo, 
          method : 'GET', 
          success : function(data) { 
           var subject = data; 
           var content = subject.split("END"); 
           try { 

            var outlookApp = new ActiveXObject(
              "Outlook.Application"); 
            var nameSpace = outlookApp 
              .getNameSpace("MAPI"); 
            mailFolder = nameSpace 
              .getDefaultFolder(6); 
            mailItem = mailFolder.Items 
              .add('IPM.Note.FormA'); 
            mailItem.Subject = content[3]; 
            mailItem.cc = content[2]; 
            mailItem.To = content[1]; 
            mailItem.HTMLBody += content[0]; 
            var insp = mailItem.GetInspector; 
            var mySigline = mailItem.HTMLBody; 
            mailItem.display(0); 
           } catch (e) { 
            alert(e); 
            // act on any error that you get 
           } 
          } 
         }); 

        }); 

      $("#btnSubmit").click(function(){ 
       callMe(); 

       }); 

      function callMe() { 
       $.ajax({ 
        url : "ajaxTicketInfo", 
        type : 'GET', 
        error : function() { 

        }, 
        success : function(result) { 
         var ticketCount = result.length; 

         var mytable = $('<table></table>');//.attr({ id: "basicTable" }); 
         var rows = ticketCount; 
         var cols = 2; 
         var tr = []; 
        $('<tr></tr>').html("<th>Incidents</th><th>Mail Generation</th>").appendTo(mytable); 
         for (var i = 0; i < rows; i++) { 
          var row = $('<tr></tr>').appendTo(mytable); 
          for (var j = 0; j < cols; j++) { 
           if(j== 0){ 
           $('<td></td>').text(result[i] + " "+ Math.random()).appendTo(row); 
           }else{ 

            //var aTag = $('<a></a>').attr({ dataId: result[i] }); 

            $('<td></td>').html('<a class="genareteEmail" href="#" dataId ="'+result[i]+'">Generate Email</a>').appendTo(row); 
            /* $('<td></td>').text("Generate Mail").append(row); */ 

           } 

          } 

         } 
         $("#box").html(mytable); 
        }, 
        cache: false 
       }); 
      }; 

      setInterval(callMe, 900000); 
     }); 



<body> 


<h1>Acknowledgement Mail Generation</h1> 

<div> 
    <div> 
     Next Refresh will be in <span id="time">05:00</span> minutes! 
    </div> 
    <div> 
     <button id = "btnSubmit">Refresh</button> 
    </div> 
</div> 

HTML代碼:

<div id="box"> 
    <table> 
    <tbody> 
     <tr><th>Incidents</th><th>Mail Generation</th></tr> 
     <tr><td>INC000013610276 0.15926314527814805</td><td> 
     <a class="generateEmail" href="#" dataid="INC000013610276">Generate 
      Email</a></td></tr> 
     <tr><td>INC000013608353 0.7894190043310691</td><td> 
     <a class="generateEmail" href="#" dataid="INC000013608353">Generate 
      Email</a></td></tr> 
     <tr><td>INC000013594620 0.8572899023472066</td><td> 
     <a class="generateEmail" href="#" dataid="INC000013594620">Generate 
      Email</a></td></tr> 
     <tr><td>INC000013592053 0.02202170976246076</td><td> 
     <a class="generateEmail" href="#" dataid="INC000013592053">Generate Email</a> 
     </td> 
    </tr> 
    </tbody> 
</table> 
</div> 

按我的代碼時,我點擊相應的錨鏈接的.genarateEmail jQuery的需要執行的。但點擊功能不起作用。

任何人都可以幫助我在創建動態表時出錯的地方。

+0

你實際上有一個'class =「genareteEmail」'在你的HTML?或者你有'class ='generateEmail''沒有錯別字? –

+0

對不起,我的錯誤,我只是編輯了HTML部分,但仍然面臨問題。 – bharathi

+0

你在哪裏/如何運行js代碼?如果它不在'$ .ready()'塊中,或者在執行BEFORE之前分析了html,那麼您將不附加任何東西,因爲該CSS類在DOM中不存在。 –

回答

0

文檔準備好後,所有的事件都應該被綁定。因此,包括你的方法在文檔準備評論@Mark B

$(document).ready(function(){ 
    $(".genareteEmail").click(function(){ 
     //Your logic 

    }) 
})