jQuery: каскадные всплывающие окна - PullRequest
0 голосов
/ 24 июня 2009

У меня есть следующий код для отображения всплывающего div:

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

div изначально скрыт, и с небольшим количеством кода jQuery я превращаю его в видимый при нажатии на якорь pop1. Это плагин, который я сделал для этого:

(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 * +1010 *

1 Ответ

0 голосов
/ 24 июня 2009
var popup = $(target.attr("rel")).add($(target.attr("rel") > *));

или

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