Javascript: нельзя передавать переменные в качестве параметров с помощью onClick - PullRequest
0 голосов
/ 23 октября 2011

У меня есть этот код (jquery):

function somefunction() {

        $.ajax({
        type : 'POST',
        url : 'post.php',
        dataType : 'json',

        success : function(data){

            var mess = "";  
            var count = 0;

            while (count < (data.length - 1))
            {

                 mess = mess + "<a href=# onclick=deletePerson("JohnDoe");return false;><img src=x.gif></a>" + data[count].name + "<br />";
                 count++;
            }


            $('#mydiv').html(mess).fadeIn('fast');


        },
    });


}
function deletePerson(arg) {...}

Когда я запускаю это, все работает нормально. Однако, когда я хочу передать переменную (вместо «JohnDoe») с помощью onclick, она перестает работать:

var myvar = "JohnDoe";
mess = mess + "<a href=# onclick=delete(myvar);return false;><img src=x.gif></a>" + data[count].name + "<br />";

Мой редактор говорит мне: «Неразрешенная переменная или тип».

Никогда не было проблем с передачей параметров, но с этим onClick, он просто не работает ...

Кто-нибудь знает, что я делаю не так?

Большое спасибо!

РЕДАКТИРОВАТЬ: пост Джозефа исправил проблему JohnDoe (спасибо!), Однако, когда я поставил:

var myvar = data[count].name;

перестает работать ... есть мысли?

Ответы [ 2 ]

1 голос
/ 23 октября 2011

Вам нужно объединить переменную в

myvar = "JohnDoe";
mess = mess + "<a href=# onclick=delete('"+myvar+"');return false;><img src=x.gif></a>" + data[count].name + "<br />";
0 голосов
/ 23 октября 2011

delete является зарезервированным ключевым словом в javascript, вам следует переименовать вашу функцию.

...
mess = mess + "<a href=# onclick=deletePerson('"+myvar+"');return false;><img src=x.gif></a>" + data[count].name + "<br />";
...
function deletePerson(name) {...}
...