Вызов функции javascript внутри динамической строки Jquery

0

Добрый день, ребята. Я пытаюсь реализовать функцию onclick в динамически созданной таблице в 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
    В вашем коде не должно быть onClick или подобных событий, если вы пишете хороший jQuery. Смотрите ответ @Rohan ниже, чтобы узнать, как это сделать лучше ...
  • 0
    все обратные вызовы выполняются во время выполнения, поэтому никаких статических вещей не будет, поэтому сохраняйте почтовые данные в html dom вместе с html и во время выполнения получайте данные электронной почты и переходите к методу.
Теги:

3 ответа

1
Лучший ответ

Попробуйте изменить

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

в

".....onclick='javascript:call(\"" + mail +"\");'....."
  • 0
    Большое спасибо @ rps, Это решило проблему
  • 0
    пожалуйста.
Показать ещё 1 комментарий
0

изменить имя вызова функции на что-то еще может вызватьFun.

<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'));
});
0

Попробуйте это,

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

Добавьте mail-link на класс в 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>"
  • 0
    Спасибо, но я пытаюсь вызвать функцию на HTML-странице, чтобы вы могли редактировать или удалять конкретного пользователя. Ответ @ rps решил проблему. Но спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню