【问题标题】:Get element id or class when clicked and use in JQuery statement单击并在 JQuery 语句中使用时获取元素 id 或类
【发布时间】:2014-01-14 12:49:26
【问题描述】:

我有一个缩略图库,使用 Packery 将其组织成砖石风格的列。

我正在努力做到这一点,如果你点击一张图片,所有图片都会淡出,div 会显示同一图片的放大版本和有关它的信息。

到目前为止,我已经做到了,当单击此图库中的任何图像时,所有图像都被 JQuery 隐藏,然后设置为 display:none 的 div 变得可见。

如何获取被点击图片的idclass,然后将其回显到另一个语句中,以便使相应的内容可见?

我知道我可以使用单个 JQuery 语句流来做到这一点,但是我确信有一种我不知道的方法可以做到这一点。

到目前为止我的 JQuery。

$( "#galeria .item" ).click(function() {
        $( "#galeria" ).fadeOut( 1000, function() {
            $( "#nuevoContenido" ).fadeIn( 1000 );
        });
    });
    $( "#nuevoContenido .lrg-item" ).click(function() {
        $( "#nuevoContenido" ).fadeOut( 1000, function() {
            $( "#galeria" ).fadeIn( 1000 );
        });
    });

HTML

<div id="galeria" class="container col-md-10 col-md-offset-1 text-center">
            <a hre="#"><img class="item" src="img/editorial/revistamexico1.jpg"></a>
            .....
            <a hre="#"><img class="item" src="img/hechoamano/silla_todo.jpg"></a>

        </div>
        <div id="nuevoContenido" class="container">
            <div class="col-md-6">
                <a hre="#"><img class="img-responsive lrg-item" src="img/hechoamano/silla_todo.jpg"></a>
            </div>
            <div class="col-md-6 text-left">
                <h1>This</h1>
                <p>This this</p>
                <a href="#" class="btn btn-lg btn-success lrg-item">Regresa a Galeria</a>
            </div>
        </div>  

【问题讨论】:

标签: jquery css


【解决方案1】:

因为您所有的“.item”类元素都是图像,也许您可​​以更改#nuevoContenido div 的innerHTML 以显示该图像的副本?不过,这对客户端和服务器来说可能有点困难。

编辑:我没有注意到您在#nuevoContendio 中已有的元素。我更新了下面的代码以反映另一种可能性,它也使用 HTML5 data-* 属性:

<!-- data attributes are added to each img element, containing the image's title and description -->
<div id="galeria" class="container col-md-10 col-md-offset-1 text-center">
    <a hre="#"><img class="item" src="img/editorial/revistamexico1.jpg" data-title="Here is the title of this image" data-description="Here is a description of this image"></a>
        .....
    <a hre="#"><img class="item" src="img/hechoamano/silla_todo.jpg" data-title="Another title!!" data-description="another description"></a>

</div>


//the image's src, data-title, and data-description will be passed to the function
$( "#galeria .item" ).click(function() {
    var src = $(this).attr('src'),
        title = $(this).attr('data-title'),
        desc = $(this).attr('data-description');

    $( "#galeria" ).fadeOut( 1000, function() {
        $( "#nuevoContenido" ).fadeIn( 1000 )
        .children('img-responsive lrg-item').attr('src',src);

        $( "#nuevoContenido h1" ).html(title);
        $( "#nuevoContenido p" ).html(desc);
    });
});

这将更改当前在#nuevoContenido 中的图像的 src 属性,然后分别更新 H1 和 P 以保存图像的标题和描述。

【讨论】:

  • 真的很酷!它很有魅力,但像这样我将无法加载与图像相关的单个内容
  • 我已经更新了代码以反映使用 HTML data-* 属性的另一种可能性。
  • 这太棒了,非常感谢。我整天都在为此苦苦挣扎! .children('img-responsive lrg-item').attr('src',src); 行虽然没有插入。我尝试使用与其他两行类似的语法。我要研究一下这是文档
  • 怎么样 ('#nuevoContenido img').attr('src',src);
  • 我把它改成了$('#nuevoContenido img').attr('src',src); 因为那个div里只有一张图片。再次感谢
猜你喜欢
  • 1970-01-01
  • 2017-12-27
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
  • 2021-03-28
  • 2012-05-03
  • 1970-01-01
相关资源
最近更新 更多