Jquery打开一个弹出窗口并将其嵌入到单击的div中

时间:2012-04-26 15:07:13

标签: jquery append appendto

我想打开一个弹出窗口并将其嵌入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 个答案:

答案 0 :(得分:0)

你的第一个陈述是倒退的。将其更改为$(“。event”)。appendTo($('。popup-event')。parent());或者改变appendTo以便追加,它会起作用。此外,验证您的两个jQuery对象都不是空的。

答案 1 :(得分: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()

答案 2 :(得分:0)

我认为您的代码中存在一些错误。首先,我会说使用id而不是popup-event类更好(据我所知)它是唯一的。

另外,当你写

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

您尝试将“popup-event”div的附加到“event”div。

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

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

假设您已在“弹出事件”上添加了一个ID,并且您希望它出现在单击的div中。如果您希望它出现在单击的div的父级内,则会附加到

$(this).parent()

答案 3 :(得分:0)

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

我将整个事情包裹在<div id="events">中并将课程更改为&#34;已选择&#34;所以事件会发生。

如果您取出.parent()条款中的appendTo,则会将正确的元素放入其中。

另外,要使其相对于.event div的位置,您希望在点击事件中引用$(this),这样您就不会意外地获得另一个div。

最后,将position:relative添加到.event div,以确保它始终位于该元素中。