2013-02-28 92 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(...); 

你可以使用更复杂的选择器,但它的想法总是相同的。记住一个元素可以有多个类。