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>
<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;
});
});
$('#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?