Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择上一个父jQuery的子项_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 选择上一个父jQuery的子项

Javascript 选择上一个父jQuery的子项,javascript,jquery,html,css,Javascript,Jquery,Html,Css,最近我一直在尝试使用CSS和jQuery制作动画,效果很好,不过,现在我想做得更多。 也就是说,一旦用户单击,信息就会显示在图像的顶部 目前,我只有几个标签,我在上面执行动画和类切换 我的问题是,我考虑过做以下事情: <div class= "singleImage"> <img src.... class="actualImage"> <p>text to put over the image</p> </div>

最近我一直在尝试使用CSS和jQuery制作动画,效果很好,不过,现在我想做得更多。 也就是说,一旦用户单击,信息就会显示在图像的顶部

目前,我只有几个标签,我在上面执行动画和类切换

我的问题是,我考虑过做以下事情:

<div class= "singleImage">
    <img src.... class="actualImage">
    <p>text to put over the image</p>
</div>

要放置在图像上的文本

这将是每个图像,这意味着我将有5个不同的图像他们

但是,我不知道如何选择类“ActualMage”的前一个元素

有人有什么建议吗

谢谢您使用jQuery函数。示例:假设要选择第二个图像之前的图像:

var foo = $(".singleImage").eq(1);
var bar = $(foo).prev().find('.actualImage');
试试这个:

$('singleImage').children('.actualImage').prev();

我不确定您为什么要选择上一个元素,但您可以执行类似以下操作:

  • 将函数绑定到包含图像和标题的元素的单击事件。
    • 在此函数中,切换标题
    • 另外,将click事件处理程序绑定到主体以检测“关闭”包含元素的单击
HTML:

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);
        };
    });
});

我尝试了以下语法:$(this.prev(“.actualImage”);但它似乎不起作用,请检查jQuery的。
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 }
$('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);
        };
    });
});