Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Фабрика виджетов и autocomplite (https://javascript.ru/forum/jquery/77985-fabrika-vidzhetov-i-autocomplite.html)

рони 10.07.2019 19:08

Цитата:

Сообщение от Misha_White
data-param1= и т.д.

можно без и т.д., достаточно одной таблетки, кавычки важно.
<!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.4/jquery.min.js"></script>

  <script>
$(function() {
    var obj = $("#box").data("param");
    alert(obj.b);
});
  </script>
</head>

<body>
<div id="box" data-param = '{"a" : 10, "b" : "test"}'></div>

</body>
</html>

Misha_White 11.07.2019 03:06

Понял, словарь сразу передать можно. Круто. Я об этом что-то не подумал.
Спасибо. Сегодня попробую.

Misha_White 11.07.2019 09:31

Эх, у меня строкой передаются параметры... Возможно JSON получится использовать.

рони 11.07.2019 09:57

Цитата:

Сообщение от Misha_White
Эх, у меня строкой передаются параметры

в чём проблема?

Misha_White 11.07.2019 11:30

проблема из строки получить словарь.
<!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.4/jquery.min.js"></script>
 
  <script>
$(function() {
    var obj = $("#box").data("param");
    alert(obj.b);
});
  </script>
</head>
 
<body>
<div id="box" data-param = "{'a' : 10, 'b' : 'test'}"></div>
 
</body>
</html>

рони 11.07.2019 11:33

Misha_White,
кавычки в data-param поменяйте и run добавьте
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Misha_White 11.07.2019 11:36

я бы с радостью кавычки поменял, но это поведение Django, при передаче атрибутов в виджет... передаёт их строкой.

рони 11.07.2019 11:42

Misha_White,
<!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.4/jquery.min.js"></script>

    <script>
$(function() {
        var obj = {a : 10, b : "test"};
        var param = JSON.stringify(obj);
        $("#box").attr("data-param", param);
        alert($("body").html());
        alert($("#box").data("param").b);
});
    </script>
</head>

<body>
<div id="box" ></div>

</body>
</html>

рони 11.07.2019 11:43

Misha_White,
используйте JSON.stringify

Misha_White 11.07.2019 11:43

Ну я про JSON выше и сказал, спасибо.


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