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

时间:2011-10-01 16:59:00

标签: javascript jquery html

我有jQuery:

$('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显示正确。

当我点击第二张图像时,弹出框出现在第一张图像下面。

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

为什么会这样?

2 个答案:

答案 0 :(得分:1)

尝试使用偏移而不是位置

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

你还必须使用“this”而不是ID,因为它总是匹配第一张图片

答案 1 :(得分:0)

我认为您需要将第3行更改为:

Var position = $(this).parent().position();

调用事件处理程序时,$(this)将引用单击的元素。