2013-03-27 146 views
0

我有一个“父”覆盖从一个可点击的图像调用。叠加层本身有一个图像,一个文本表格,一个关闭按钮(关闭)和“链接”,这些标记的元素用与父级相同的格式调用“子级”叠加层,包括关闭按钮(尽管没有子节点“链接“本身)。jquery覆盖:关闭子覆盖而不关闭父

每次单击“子”覆盖图上的关闭按钮,即使我只想让孩子关闭,孩子和父母都会关闭。我认为这是因为jquery认为关闭事件是针对父母和孩子的,因为它们具有相同的标记和类名。

这里的脚本:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('img[rel]').overlay({ 
     oneInstance: false 
    }); 

    $('a[rel]').overlay({ 
     oneInstance: false, 
     onLoad: function() { 
      $('.close').click(function (event) { 
       event.preventDefault(); 
       $('a[rel]').overlay().close(); 
      }); 
     } 
    }); 
}); 
</script> 

正如你所看到的,我试图拦截的孩子点击关闭,只有关闭子,但它不工作。我究竟做错了什么?

回答

0

变化

$('a[rel]').overlay({ 
    oneInstance: false, 
    onLoad: function() { 
     $('.close').click(function (event) { 
      event.preventDefault(); 
      $('a[rel]').overlay().close(); 
     }); 
    } 
}); 

$('a[rel]').each(function() { 
    var that = $(this); 
    that.overlay({ 
     oneInstance: false, 
     onLoad: function() { 
      $('.close').click(function (event) { 
       event.preventDefault(); 
       that.overlay().close(); 
      }); 
     } 
    }); 
});