2013-02-28 46 views
2

我創建了一個簡單的jquery彈出窗口。 在我的網站上,我有幾個btns,每個鏈接到不同的彈出窗口。Jquery - 將鏈接按鈕關聯到div的

我的問題: 有沒有辦法所有的按鈕鏈接到有相關的彈出窗口,而無需列出了名字每個按鈕和DIV,我開始所以下面做什麼? 或者,也可以使用最短的方式列出所有按鈕和div,而不必爲每個按鈕寫入點擊事件?

$(function() { 
    $('.Btn1').click(function(e) {e.preventDefault(); 
    $('.Pop1').fadeIn();}); 
    $('.Btn2').click(function(e) {e.preventDefault(); 
    $('.Pop2').fadeIn();}); 
    var modalBgd = $('.PopBgd') 
    $('.PopClose, .PopBgd').click(function(e) {e.preventDefault(); 
    modalBgd.fadeOut();}); 
}); 

回答

0

你能提供的ID /類彈出的數據元素中像這樣的鏈接:

<a href="#" data-popup=".Pop1" class="openpopup">open popup 1</a> 
<a href="#" data-popup=".Pop2" class="openpopup">open popup 2</a> 

那會你的JavaScript減少到這一點:

$('.openpopup').click(function(e) { 
    e.preventDefault(); 
    $($(this).data('popup')).fadeIn(); 
}); 
+0

這是它真棒做我需要的一切如此優雅。有一些關於小代碼的東西讓我在內部都變得粘糊糊的。 Nadine你是一個天才,我感激不盡。 絕對是我特殊問題的最佳答案。 – Obsidian 2013-02-28 16:38:31

0

取決於您的鏈接/按鈕/可點擊元素的外觀。我會做這樣的事情:選擇所有這些元素,並將事件處理程序應用於他們,例如

$(".popup").click(...); 

你可以使用更復雜的選擇器,但它的想法總是相同的。記住一個元素可以有多個類。