2009-06-24 5 views
0

У меня есть следующий код, чтобы отобразить всплывающее DIV:JQuery: каскадные всплывающие окна

<a href="#" id="pop1" rel="div#tt1">Click to show popup</a> 
<div class="popupBlock" id="tt1">My popup content ...</div> 

ДИВ изначально скрыты и немного JQuery кода я превращаюсь его видимым, когда POP1 анкер щелкнул , Это plgin я сделал для этого:

(function($) { 
$.fn.pop = function(options) { 


    var defaults = { 
     show: "click", 
     tooltip: null 
    }; 
    var options = $.extend(defaults, options); 
    var target = $(this); 
    var popup = $(target.attr("rel")); 

    popup.css("visibility", "hidden").css("display", "none"); 
    target.click(function() { 
     popup.css("visibility", "visible").css("display", "block"); 
     return false; 
    }); 

    $('body').click(function() { 
     popup.css("visibility", "hidden").css("display", "none"); 
     return false; 
    }); 

    popup.click(function(event) { 
     event.stopPropagation(); 
    }); 
}; 

Все вроде бы в порядке, но все это ломается, когда я добавить элемент управления в DIV, например:

<div class="popupBlock" id="tt1">My popup content ... 
     <span> some text here</span> 
</div> 

span не вызывает событие щелчка div и скрывает div, чего я не хочу. Кто-нибудь знает, что мне нужно делать, чтобы предотвратить это? Спасибо, V

ответ

0
var popup = $(target.attr("rel")).add($(target.attr("rel") > *)); 

или

var popup = $(target.attr("rel"), $(target.attr("rel") > *));