Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazywanie zmiennej
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
taurrandir
Witam!

Robię taki mały moduł do PrestaShop i natrafiłem na problem. Problem może i niewielki, ale JS to dla mnie nowość. Na podstawie danych z bazy mam wygenerowany taki kod:

Kod
<div id="toplinks2">
    <ul>
        <li>
        <a href="" class='popup' onclick="var id_link = "#popup1";">Popup link 1</a>
        <div id="popup2" style="display:none;">Jakiś tekst</div>
        </li>

        <li><a href="costam">Zwykły link</a></li>

        <li>
        <a href="" class='popup' onclick="var id_link = "#popup2";">Popup link 2</a>
        <div id="popup2" style="display:none;">Jakiś tekst</div>
        </li>
    </ul>
</div>


Jak widać część linków to zwykłe linki inne to popupy wyskakujące dzięki pluginowi do jQuery.
Kod zewnętrznego pliku .js:

Kod
jQuery(function ($) {
    $('#toplinks2 .popup').click(function (e) {
        $(id_link).modal();
    return false;
    });
});


Problem tkwi w tym, że zmienna id_link nie przechodzi do zewnętrznego pliku .js.
A przy okazji.. czy taki sposób wykonywania funkcji po kliknięciu linka jest dobry? Czy może istnieje lepsza metoda?
tr@k
To jest źle
Kod
onclick="var id_link = "#popup2";">


Java script widzi tylko tyle
Kod
onclick="var id_link = "

czyli pustą zmienną.

Popraw cudzysłowy
taurrandir
Nadal nie działa.

Dla uproszczenia zrobiłem tak:
Kod
<a href="" class='popup' onclick="var id_link = 1;">Popup link 1</a>

Plik .js:
Kod
jQuery(function ($) {
    $('#toplinks2 .popup').click(function (e) {
    alert( id_link );
        return false;
    });
});


To też nie działa.
tr@k
Spróbuj stworzyć zmienną w pliku gdzie masz funkcję i zmienić tę wartość funkcją
Kod
var id_link='';

function setLinkId(id)
{
  id_link = id;
}
jQuery(function ($) {
...


A w html'u:
Kod
onclick="setLinkId('1')">



taurrandir
Działa! Wielkie dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.