我想打开一个弹出窗口并将其嵌入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>
答案 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,以确保它始终位于该元素中。