我不知道爲什麼你嘗試選擇以前元素,但你可以做類似這樣的事情:
- 將函數綁定到第e元素包含您的圖像和標題。
- 在此功能中,切換標題。
- 此外,將點擊事件處理程序綁定到主體以檢測包含元素的點擊「關閉」。
HTML:
<a href="#" class="has-caption">
<img src="http://placehold.it/300x300" />
<span class="caption">This is a caption</span>
</a>
CSS:
a.has-caption { position: relative; }
a.has-caption .caption {
background: rgba(0, 0, 0, .25);
bottom: 0;
color: #fff;
display: none;
height: 20px;
left: 0;
line-height: 20px;
position: absolute;
width: 100%;
}
a.has-caption img { vertical-align: bottom }
的JavaScript
$('a.has-caption').on('click', function(e) {
e.preventDefault(); e.stopPropagation();
var self = $(this)
, tmpId = 'toggle-' + Date.now();
self.addClass(tmpId);
$('span.caption', self).toggle();
$('body').one('click', function(e) {
if (!$(event.target).closest('.' + tmpId).length) {
$('span.caption', '.' + tmpId).hide();
self.removeClass(tmpId);
};
});
});
http://jsfiddle.net/83s7W/
查看jQuery的[Tree Traversal API](http://api.jquery.com/category/traversing/tree-traversal/)。 –