Autor Zpráva
cytris
Profil
Zdravím,
mám v libovolném HTML tagu platný Javascript:
<div class="action" data-params="{var1: 'val1', var2: 'val2'}" onclick="action(this)">
funkce:
var action = function(context) {
  var params = $(context).attr("data-params");
  console.log(params.var1);
}
Javascript (resp. JQuery) vyhodnocuje parametr jako string, což je v pořádku... já ale potřebuji objekt. Lze vůbec nějakou cestou vyhodnotit proměnnou jako objekt? Funkce eval() pouze provádí skript, nic nevrací.
_es
Profil
cytris:
Funkce eval() pouze provádí skript, nic nevrací.
Kde si k tomu tvrdeniu prišiel? Nie je to pravda.
cytris
Profil
Omlouvám se, to se vztahovalo k $.globalEval(). Nicméně eval() vrací SyntaxError: Unexpected token :
_es
Profil
cytris:
Nicméně eval() vrací SyntaxError: Unexpected token :
Musíš textový reťazec upraviť tak, aby bol považovaný za hodnotu a nie za blok príkazov.
eval("({var1: 'val1', var2: 'val2'})")
funguje správne.
Chamurappi
Profil
Reaguji na cytrise:
Omlouvám se, to se vztahovalo k $.globalEval().
Ten funguje velmi podobně jako eval.

A co se týče… á, tak _es mě předběhl. Má pravdu.
_es
Profil
cytris:
Omlouvám se, to se vztahovalo k $.globalEval().
Ten ti nebude fungovať, lebo sa vykonáva v globálnom kontexte, preto tam premenná context nebude definovaná (api.jquery.com/jQuery.globalEval).
cytris
Profil
_es:
Děkuji, o těch závorkách jsem nevěděl ;)
preca2
Profil *
Zdravim,
nebylo by správnější trochu upravit hodnotu toho atributu (na validní JSON) a použít JSON.parse?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0