2014-05-12 4 views
0

안녕하세요. 나는 onclick 함수를 동적으로 생성 된 jQuery 테이블에 구현하려고합니다. 하지만 버튼을 클릭 할 때마다, 내 콘솔에서이 오류를동적 행 내에서 javascript 함수 호출 Jquery

(불법 예기치 않은 토큰)

를 얻을.

하지만 오류를 클릭하면 가리키는 줄에 코드가 없습니다. 여기

코드입니다 :

$(document).ready(function(){ 
    var tbl=""; 
    $.getJSON('./libs/form.php',function(result){ 
     console.log(result); 
     $.each(result,function(key,val) { 
     if($.isNumeric(key)){ 
      var mail=val.Email; 
      tbl+="<tr class='odd gradeX'> "; 
      tbl+="<td>" + val.Name + "</td>"; 
      tbl+="<td>"+ val.Email +"</td>"; 
      tbl+="<td>"+ val.Gender +"</td>"; 
      tbl+="<td>" + val.Qualification + "</td>"; 
      tbl+="<td>" + val.Experience + "</td>"; 
      tbl+="<td>" + val.Note + "</td>"; 
      tbl+="<td><a onclick='javascript:call(" + mail +");' class='btn btn-success btn-small'><i class='icon-edit icon-white'></i>" + "EDIT" + "</a></td>" 

     tbl+="</tr>"; 

     } 


     }); 
     $("#applicantstbl").append(tbl); 

     $("#applicantstbl").dataTable({ 
      "bJQueryUI":true, 
      "sPaginationType":"full_numbers" 

     }); 

    }); 

}); 

가 내가 뭘 잘못 알고 싶습니다하십시오, 그것은 완벽하게 테이블을 표시합니다. 그냥 onclick 기능입니다. 여기

함수 호출하는 것을 시도하고있다 :

<script> 
    function call(name) 
    { 
    alert("Called"+ name); 
    } 
</script> 
+0

당신의 코드가 더 온 클릭 또는 유사한 이벤트가 없어야합니다. 아래의 @Rohan에 대한 답변을 참조하십시오. – vogomatix

+0

모든 콜백이 런타임에 실행되므로 정적 인 것이 없으므로 html과 함께 html dom에 메일 데이터를 저장하고 런타임에 전자 메일 데이터를 얻고 메소드에 전달하십시오. –

답변

1

같은 그것을 시도

".....onclick='javascript:call(\"" + mail +"\");'....." 
+0

대단히 감사합니다 @ rps, 그 문제를 해결 – olakunle

+0

당신은 오신 것을 환영합니다. – rps

+0

또한 다음과 같이 간단히 사용할 수 있습니다. "onclick = 'call (..." "javascript :"접두사가 중복됩니다.) – graphicdivine

0

".....onclick='javascript:call(" + mail +");'...." 

을 변경해보십시오,

$('#applicantstbl').on('click','.mail-link',function(e){ 
    e.preventDefault(); 
    call($(this).data('email')); 
}); 

는 callFun 수 있습니다 뭔가 다른, 같은 당신의 HTML 링크에 함수 호출의

tbl+="<td><a data-email='"+mail+"' class='mail-link btn btn-success btn-small'><i class='icon-edit icon-white'></i>" + "EDIT" + "</a></td>" 
+0

고마워요.하지만 HTML 페이지에서 함수를 호출하려고합니다. 사용자가 @ rps 답을 통해 문제를 해결했습니다.하지만 감사합니다. – olakunle

0

변경 이름을 클래스 mail-link를 추가합니다.

<a onclick='javascript:callFun(\"" + mail +"\");'>mail</a> 

또는 대체

당신은 좋은 jQuery를 작성하는 경우

<a emailId='" + mail +"'>mail</a> 

$('#applicantstbl').on('click','.btn-small',function(e){ 
    e.preventDefault(); 
    callFun($(this).attr('emailId')); 
}); 
관련 문제