2011-10-01 42 views
0

我有jQuery的:为什么我的div位置不能动态计算?

$('img[title*=\"Show\"]').live('click', function(e) { 
    //$e.preventDefault(); 
    e.stopImmediatePropagation();  
    var position = $('img[title*=\"Show\"]').parent().position(); 
    $('#popover').css('top', position.top + $('img[title*=\"Show\"]').parent().height()); 
    console.log(position); 
    $('#popover').fadeToggle('fast'); 
    if ($('img[title*=\"Show\"]').hasClass('active')) { 
     $(this).removeClass('active'); 
    } else { 
     $('img[title*=\"Show\"]').addClass('active'); 
    } 
    }); 

我有两个图像名为 “显示选项”。

当我点击第一张图片时,popover div显示正常。

当我点击第二张图片时,弹出窗口出现在第一张图片的下面。

我希望它出现在第二张图片下面。

这是为什么?

回答

1

尝试使用偏移而不是位置

$(this).parent().offset(); 

,你也将不得不使用的“本”,而不是ID,因为它总是会匹配第一个PIC

+0

不幸的是,这并没有奏效。点击第二张图片会使其出现在第一张图片的下方。 –

+0

太棒了!差不多了。现在div的图像之间有一个明显的高度差距。任何方式让他们更接近一起,以便他们可能相隔5 px? –

+0

你正在添加parent.height()顶部,而不是你的图像的高度.. – Parvesh

0

我认为你需要改变第3行:

当你的事件处理程序被调用$(这)将是指被点击的元素。

相关问题