jQueryを使用している場合:
HTML:
<a id="openMap" href="/map/">link</a>
JS:
$(document).ready(function() {
$("#openMap").click(function(){
popup('/map/', 300, 300, 'map');
return false;
});
});
これには、JSがなくても、またはユーザーが中央のリンクをクリックした場合でも機能するという利点があります。
また、次のように書き直すことで、一般的なポップアップを処理できることも意味します。
HTML:
<a class="popup" href="/map/">link</a>
JS:
$(document).ready(function() {
$(".popup").click(function(){
popup($(this).attr("href"), 300, 300, 'map');
return false;
});
});
これにより、ポップアップクラスを指定するだけで、任意のリンクにポップアップを追加できます。
このアイデアは、さらに次のように拡張できます。
HTML:
<a class="popup" data-width="300" data-height="300" href="/map/">link</a>
JS:
$(document).ready(function() {
$(".popup").click(function(){
popup($(this).attr("href"), $(this).data('width'), $(this).data('height'), 'map');
return false;
});
});
これで、サイト全体の多くのポップアップに同じコードを使用して、大量のonclick要素を記述する必要がなくなりました。再利用可能です。
また、後でポップアップが不適切であると判断した場合(そうである場合)、それらをライトボックススタイルのモーダルウィンドウに置き換える場合は、次のように変更できます。
popup($(this).attr("href"), $(this).data('width'), $(this).data('height'), 'map');
に
myAmazingModalWindow($(this).attr("href"), $(this).data('width'), $(this).data('height'), 'map');
サイト全体のすべてのポップアップがまったく異なって機能するようになりました。機能検出を行って、ポップアップで何をするかを決定したり、ユーザーの設定を保存して許可したりしないこともできます。インラインのonclickを使用すると、膨大なコピーと貼り付けの作業が必要になります。