Nếu bạn đang sử dụng jQuery thì:
HTML:
<a id="openMap" href="/map/">link</a>
JS:
$(document).ready(function() {
$("#openMap").click(function(){
popup('/map/', 300, 300, 'map');
return false;
});
});
Điều này có lợi ích là vẫn hoạt động mà không có JS hoặc nếu người dùng ở giữa nhấp vào liên kết.
Điều đó cũng có nghĩa là tôi có thể xử lý các quảng cáo chung bằng cách viết lại thành:
HTML:
<a class="popup" href="/map/">link</a>
JS:
$(document).ready(function() {
$(".popup").click(function(){
popup($(this).attr("href"), 300, 300, 'map');
return false;
});
});
Điều này sẽ cho phép bạn thêm một cửa sổ bật lên vào bất kỳ liên kết nào bằng cách chỉ cho nó lớp bật lên.
Ý tưởng này có thể được mở rộng hơn nữa như vậy:
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;
});
});
Bây giờ tôi có thể sử dụng cùng một đoạn mã cho nhiều cửa sổ bật lên trên toàn bộ trang web của mình mà không phải viết vô số nội dung onclick! Yay cho tái sử dụng!
Điều đó cũng có nghĩa là nếu sau này tôi quyết định rằng cửa sổ bật lên là thông lệ xấu, (đó là!) Và tôi muốn thay thế chúng bằng cửa sổ phương thức kiểu hộp đèn, tôi có thể thay đổi:
popup($(this).attr("href"), $(this).data('width'), $(this).data('height'), 'map');
đến
myAmazingModalWindow($(this).attr("href"), $(this).data('width'), $(this).data('height'), 'map');
và tất cả các quảng cáo của tôi trên toàn bộ trang web của tôi hiện đang hoạt động hoàn toàn khác nhau. Tôi thậm chí có thể thực hiện phát hiện tính năng để quyết định những việc cần làm trên cửa sổ bật lên hoặc lưu trữ tùy chọn người dùng để cho phép họ hay không. Với onclick nội tuyến, điều này đòi hỏi một nỗ lực sao chép và dán rất lớn.