0

我想打开一个弹出窗口并将其嵌套到一个 div 中。我正在使用appendTo。我的弹出窗口必须在点击的 div 内打开。父母

然后附加一些html。我错过了什么?

小提琴:http: //jsfiddle.net/XeELs/151/

 if ($("#events .event").hasClass("selected")) {
            $('.popup-event').parent().appendTo($(".event"));
            $(this).fadeIn();
            $('.popup-event').append('<span class="close-popup-event" />'); 
        }else{
            $('.close-popup-event').fadeOut('');
       }

HTML

<div class="event">
</div>



<aside class="popup-event">

</aside>
4

4 回答 4

0

你可以尝试这样的事情:

http://jsfiddle.net/mkprogramming/XeELs/150/

$('.event a').click(function() {
        $('.popup-event').appendTo($(this).parent());
        $('.popup-event').fadeIn();
        $('.popup-event').append('<span class="close-popup-event" />'); 
});​

我认为要注意的关键部分是$(this).parent()

于 2012-04-26T15:21:24.863 回答
0

我认为您的代码中有一些错误。首先,我会说最好使用 id 而不是 class 用于弹出事件,因为(据我所知)它是独一无二的。

另外,当你写

 $('.popup-event').parent().appendTo($(".event"));

您尝试将“弹出事件” div 的级附加到“事件” div。

我会做什么(如果我理解正确的话)是这样的:

$("div.event").bind('click', function() {
 $("#popup-event").appendTo($(this));
});

假设您在“popup-event”上放置了一个 id,并且您希望它出现在单击的 div 中。如果您希望它出现在单击的 div 的父级内,您将附加到

$(this).parent()
于 2012-04-26T15:25:19.153 回答
0

你的第一个陈述是倒退的。将其更改为 $(".event").appendTo($('.popup-event').parent()); 或将 appendTo 更改为 append ,它将起作用。此外,验证您的两个 jQuery 对象都不为空。

于 2012-04-26T15:18:32.497 回答
0

看看这个小提琴:http: //jsfiddle.net/a9AHt/1/

我把整个东西都包进去了<div id="events">,把类改成“选定的”,这样事件就会触发。

如果您取出子句中的.parent()in ,appendTo那么它将放入正确的元素。

此外,为了使其相对于该.eventdiv 的位置,您需要$(this)在 click 事件中引用,这样您就不会意外获得另一个 div。

最后,添加position:relative.eventdiv 以确保它始终在该元素中。

于 2012-04-26T15:29:25.813 回答