Si vous utilisez jQuery, puis:
HTML:
<a id="#openMap" href="http://stackoverflow.com/map/">link</a>
JS:
$(document).ready(function() {
$("#openMap").click(function(){
popup('/map/', 300, 300, 'map');
return false;
});
});
Cela a l'avantage de travailler sans JS, ou si l'utilisateur moyen clique sur le lien.
Cela signifie aussi que je ne pouvais gérer générique popups par la réécriture de nouveau:
HTML:
<a class="popup" href="http://stackoverflow.com/map/">link</a>
JS:
$(document).ready(function() {
$(".popup").click(function(){
popup($(this).attr("href"), 300, 300, 'map');
return false;
});
});
Ce serait vous permettent d'ajouter un popup à un lien, juste en lui donnant le popup de classe.
Cette idée pourrait être de s'étendre de la sorte:
HTML:
<a class="popup" data-width="300" data-height="300" href="http://stackoverflow.com/map/">link</a>
JS:
$(document).ready(function() {
$(".popup").click(function(){
popup($(this).attr("href"), $(this).data('width'), $(this).data('height'), 'map');
return false;
});
});
Je peux maintenant utiliser le même code pour beaucoup de fenêtres pop-up sur mon site en entier sans avoir à écrire des charges de onclick trucs! Yay pour la réutilisabilité!
Cela signifie également que si plus tard je décide que les popups sont mauvaises pratiques, (ce qu'ils sont!) et que je veux remplacer par un style lightbox fenêtre modale, je peux changer:
popup($(this).attr("href"), $(this).data('width'), $(this).data('height'), 'map');
pour
myAmazingModalWindow($(this).attr("href"), $(this).data('width'), $(this).data('height'), 'map');
et tous mes popups sur l'ensemble de mon site sont maintenant à travailler de façon totalement différente. Je pourrais même faire de la fonctionnalité détection de décider quoi faire un pop-up, ou de stocker les utilisateurs de préférence pour les autoriser ou non. Avec la ligne onclick, cela nécessite un énorme copier et coller de l'effort.