konto usunięte

Temat: & w attr('href')

Mam ostatnio mały problem z podaniem url do dynamicznie tworzonego elementu a w jquery poprzez attr('href','tutaj url')

a więc w pliku parsowanym przez smarty mam :

$('#element').attr('href','{$link}')

gdzie {$link} jest zamieniane na coś w stylu "http:/test.com?mod=test& amp;test=test"

no i dziwnie strona otwierana to : http:/test.com?mod=test ( z pominięciem danych po &)

gdy mam statyczny element:
<a href="{$link}"> to wszystko działa.

jak narazie jedyne rozwiązanie które znalazłem to użycie :
$('#element').attr('href','{$link}'.replace(/\& amp;/g,'&'));

istnieje inny poprawny sposób radzenia sobie z takim problemem ?

(spacja pomiędzy & i amp; jest wynikiem dziwnego parsowania takiego tekstu przez GL. ciekawostką jest inny sposób wyświetlenia tematu na liście wątków i tematu w samym wątku)Krzysztof D. edytował(a) ten post dnia 05.05.12 o godzinie 01:34

konto usunięte

Temat: & w attr('href')

$('#element').prop('href','{$link|replace:'& amp;':'&'}')

konto usunięte

Temat: & w attr('href')

A co się stanie, jak zamiast metody .attr() skorzystasz z .prop() ??

konto usunięte

Temat: & w attr('href')

prop i attr działa tak samo w moim przypadku. po krótkiej analizie różnicy pomiędzy nimi zmieniłem wszystko na prop.
prawidłowym rozwiązaniem zatem jest stosowanie modyfikatora smarty podanego przez Kamila.
jakoś wczoraj w nocy nie wpadłem na to i szukałem jako escape/unescape.
dzięki za pomocKrzysztof D. edytował(a) ten post dnia 05.05.12 o godzinie 11:11

konto usunięte

Temat: & w attr('href')

$('#element').attr('href','{$link}')
Wyglada mi to na hackowanie. Mieszasz JS z PHP w sposob, ktory nie powinienes.

Co sie stanie jak zrobisz np:
var link='{$link}';
$('#element').attr('href',link);

I sprawdz sobie najpierw czy Ci ladnie var link jest wypelniany wlasciwym linkiem - jesli nie.. problem w PHP... jesli tak, to powinno dzialac.

konto usunięte

Temat: & w attr('href')

tworzę dynamicznie elementy, a nie modyfikuję, tak więc nie jest to hackowanie.
mam coś bardziej w stylu:
$("<a/>").prop('href','{$link}').append('#element')

znalazłem też opcję :

$("<a/>", {
id: 'example-link',
href: 'http://www.example.com/',
text: 'Example Page'
}).appendTo("#element");

przetestuję. aczkolwiek pewnie i tak muszę podmienić te & amp; na &

konto usunięte

Temat: & w attr('href')

$("<a/>").prop('href','{$link}').append('#element')
To swiadczy tylko o bardzo zlej budowie Twojego kodu JS.
Zwlaszcza jesli tych dynamicznych elementow tworzysz cala tone.

konto usunięte

Temat: & w attr('href')

a co proponujesz ?

Następna dyskusja:

Problem z .attr




Wyślij zaproszenie do