передача параметра с помощью функции onclick читается как переменная, когда она должна читаться как строка - PullRequest
0 голосов
/ 20 января 2012

Вот моя проблема:

Я динамически создаю кнопку с функцией onclick, подобной этой:

 $("#test).html('<input type="button" value="Close" onclick="remove('+param1+','+param2+');" />');

Параметры хорошо читаются, но функция не запускается, и яполучено это сообщение об ошибке: «bob не определен», когда bob является строковым значением param1.

Очевидно, что bob читается как переменная, когда его следует читать как строку, но я не понимаю, почему.

Большое спасибо за вашу помощь!

Ответы [ 2 ]

5 голосов
/ 20 января 2012

Это потому, что эта строка прямо здесь:

'onclick="remove('+param1+','+param2+');"'

В итоге будет выглядеть так:

'onclick="remove(foo, bar);"'

Вы, вероятно, хотите, чтобы она выглядела так:

'onclick="remove(\'foo\', \'bar\');"'

Поэтому измените это на следующее:

'onclick="remove(\''+param1+'\', \''+param2+'\');"'

Вы также можете сделать это:

$("#test").html('<input type="button" value="Close" />').find('input[type=button]').click(function () {
    remove(param1, param2);
});

Редактировать: я также заметил, что вы пропустили один "из вашего $ ()-вызов: $("#test) должно быть $("#test").

0 голосов
/ 20 января 2012

Я могу предложить вам это

<script type="text/javascript">
//<![CDATA[
    var i = 0;
    $(function () {
        $("#lnkAdder").click(function () {
            // appending new item
            $("#Container").append(
                $("<a>").attr({ "href": "javascript:;" }).text("Click me").click(function () {
                    var data = ++i;
                    alert("I'm clicked,  I'm number " + data);
                })
            );
        });
    });
//]]>
</script>
<a href="javascript:;" id="lnkAdder">Add item</a>
<div id="Container"></div>

Ключом здесь является закрытие JavaScript.Как видите, там есть ссылка lnkAdder.Он отвечает за добавление нового элемента в контейнер.При нажатии он добавляет новый элемент в контейнер.При добавлении вы используете jQuery API и создаете новый элемент, добавляете атрибуты и добавляете прослушиватель событий.В теле прослушивателя событий вы копируете значение во внутреннюю переменную.Они используют его по необходимости.

...