2012-08-16 2 views
0

을 내 GSP 페이지에서 내가 페이지를로드하는 동안 jQuery를 사용하여 동적으로 링크를 만들려고하고 있어요 ..GSP 페이지에서 JQuery와는 catch되지 않은 구문 에러를 제공합니다 : 예기치 않은 토큰) 오류

  <r:script> 

      function loadEmailButtons(mailTask,rowIndx,trainingIds){ 
      alert(rowIndx); 
       $.each(mailTask, function(index, value) { 
        if(value ==0){ 
         $(".table2 tr:eq("+(rowIndx)+")").append("<td width='5%' ><span><g:link action='mail' params='[mailType:'Training_Information']' controller='mailDraft' id='1'>Info</g:link></span></td>"); 
        } 
       }); 
      } 


      $(document).ready(function(){ 

       var mailDraftReminderInstance = ${mailDraftReminderInstance}; 
       loadEmailButtons(mailDraftReminderInstance, 2,trainingInstanceIds); 
      }); 
</r:script>    

하지만 메신저 점점 오류 :

을 콘솔에서 나는

 function loadEmailButtons(mailTask,rowIndx,trainingIds){ 
     $.each(mailTask, function(index, value) { 
      if(value ==0){ 
       $(".table2 tr:eq("+(rowIndx)+")").append("<td width='5%' ><span><a href="/opal/mailDraft/mail/1?mailType=Training_Information">Info</a></span></td>"); 

      } 
     }); 
    }  

catch되지 않은 구문 에러를 볼 수 있습니다 : 예기치 않은 토큰)를 href가

근처

여기에 무슨 문제가 있습니까? 위의 URL을 생성하는 동적 링크를 만드는 다른 방법이 있습니까?

+0

'href ='다음에 닫는 따옴표가 있기 때문입니다. –

답변

0

href 속성을 큰 따옴표로 묶는 것이 문제입니다. width 속성처럼 작은 따옴표를 사용하여, 그것은 작동합니다 :

$(".table2 tr:eq("+(rowIndx)+")").append("<td width='5%' ><span><a href='/opal/mailDraft/mail/1?mailType=Training_Information'>Info</a></span></td>"); 
0

<g:link> 태그는 속성 값을 큰 따옴표를 사용하는 앵커를 생성

$(".table2 tr:eq("+(rowIndx)+")").append("<td width='5%' ><span><a href="${createLink(action:'mail', params:'[mailType:'Training_Information']', controller:'mailDraft', id:'1')}">Info</a></span></td>"); 
1

보십시오.

<a href='${g.createLink(action:'mail', params:[mailType:'Training_Information'], controller:'mailDraft', id:'1').encodeAsJavaScript()}'>Info</a> 

encodeAsJavaScript 리터럴 JS 문자열에서 사용하기에 적합한 형태로 따옴표 같은 일을 피할 것, 당신은 당신이 원하는 생성 된 값을 사용한다 : 대신

<g:link action='mail' params='[mailType:'Training_Information']'  controller='mailDraft'  id='1'>Info</g:link> 

의이 시도 JavaScript 문자열에 포함합니다. 자세한 내용은 Grails 사용자 가이드의 section on codecs을 참조하십시오.

관련 문제