Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Передача объекта как параметра в функцию (https://javascript.ru/forum/jquery/62519-peredacha-obekta-kak-parametra-v-funkciyu.html)

TomTykver 14.04.2016 21:14

Передача объекта как параметра в функцию
 
Подскажите, пожалуйста: у меня есть кнопка, которую я динамически добавляю на форму
kn = '<button onClick="respUser( ' + prods + ' )">Да</button>';


Тип переменной prods - объект. При попытке передать prods в функцию respUser в качестве параметра получаю ошибку: SyntaxError: Unexpected identifier. В чем причина ?

рони 14.04.2016 21:53

TomTykver,
kn = '<button onClick="respUser(prods)">Да</button>';

TomTykver 14.04.2016 22:06

Получаю ошибку: prods is not defined
Перед инициализацией kn ставлю console.log( prods ); - все ОК

TomTykver 14.04.2016 22:16

typeof prods - object

рони 14.04.2016 22:16

TomTykver,
значит там где запускается клик невидно эту переменную.
может не использовать атрибут onClick проще будет?

TomTykver 14.04.2016 22:26

Подскажите, как лучше. Мне нужно при нажатии на кнопку обработать данные. Я уже сделал все это, но через глобальную переменную, а это не правильный поход

TomTykver 14.04.2016 22:26

:-) подход

рони 14.04.2016 22:40

TomTykver,вам же написали не используйте атрибут для назначения функции обработки события click и не нужны будут глобальные переменные.

TomTykver 15.04.2016 07:22

вроде разобрался: утро вечера мудрее. Спасибо, рони.

рони 15.04.2016 07:57

TomTykver,
на всякий случай, раз вы задали вопрос в разделе jquery
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
</style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
   <script>
   $(function() {
      var prods = {
          a: 1
      };

      function respUser(a) {
          alert(a.a);
      }
      var kn = $("<button/>", {
          text: "Да",
          click: function() {
              respUser(prods)
          }
      });
      $("body").append(kn)
  })
  </script>
</head>

<body>
</body>
</html>


Часовой пояс GMT +3, время: 02:05.