在动态行Jquery中调用javascript函数

时间:2014-05-12 09:55:54

标签: javascript jquery

大家好。我试图在jQuery中动态创建的表中实现onclick函数。但每次我点击按钮,我都会收到此错误

  

(意外的标记ILLEGAL)

在我的控制台中。

但是当我点击错误时,它指向的行上没有代码。

以下是代码:

 $(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>

3 个答案:

答案 0 :(得分:1)

尝试更改

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

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

答案 1 :(得分:0)

试试吧,

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

将类mail-link添加到您的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>"

答案 2 :(得分:0)

将函数调用的名称更改为其他名称可以调用.Four。

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

或替代是

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

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