JQUERY - 确保当用户单击其相应图像时仅显示特定类的一个 div ID,其余部分设置为隐藏

发布于 2024-08-18 14:36:56 字数 751 浏览 3 评论 0原文

我在 Flash 轮播中有 10 个图像,设置为通过 XML 文档触发 jquery 命令,

即:

<photo image="images/01.jpg" url="javascript:toggleDetail1()" target="_self">
<photo image="images/02.jpg" url="javascript:toggleDetail2()" target="_self">

etc...

当用户单击图像时,我想确保仅显示该特定图像的相应 div,而隐藏其他 9 个图像。

我已经给所有 10 个 div 指定了“toggleitem”类,每个 div 都有自己的 ID(“detail1”、“detail2”等),所以现在我需要编写我的 jquery,但我有点迷失了。

到目前为止,当我点击轮播中的图像时,我想要显示的 div 就会显示。但我真的不知道该怎么做才能让“toggleitem”类中的其他 div 隐藏起来。

<script type="text/javascript">

function toggleDetail1() {
$('#bookdetail1').show();}

function toggleDetail2() {
$('#bookdetail2').show();}

etc...

我需要使用 .not() 选择器、if 语句还是什么?我很困惑。

预先感谢您对此的任何帮助

i have 10 images in a flash carousel thats set up to trigger jquery commands through an XML document

ie:

<photo image="images/01.jpg" url="javascript:toggleDetail1()" target="_self">
<photo image="images/02.jpg" url="javascript:toggleDetail2()" target="_self">

etc...

when the user clicks an image i want to ensure that only that particular image's corresponding div is shown and the other 9 are hidden.

i've given all 10 divs the class of "toggleitem" and every div has it's own ID ("detail1", "detail2", etc.) so now i need to write my jquery and im a little lost.

so far ive gotten to the point where when i click on an image in the carousel the div i want to show will show. BUT i dont really know what to do about getting the other divs in the 'toggleitem' class to hide at that point.

<script type="text/javascript">

function toggleDetail1() {
$('#bookdetail1').show();}

function toggleDetail2() {
$('#bookdetail2').show();}

etc...

do i need to use a .not() selector, an if statement or what? im baffled.

thanks in advance for any help on this

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

番薯 2024-08-25 14:36:56

抱歉,应该包含 html:

<div class="toggleitem" id="bookdetail1">
<span class="cover"><img src="images/details/1/cover-1.jpg"</span>
<span class="spread"><img src="images/details/1/spread-1.jpg"</span>
<span class="blurb">text text text text text.</span>
</div>

sorry shouldve included the html:

<div class="toggleitem" id="bookdetail1">
<span class="cover"><img src="images/details/1/cover-1.jpg"</span>
<span class="spread"><img src="images/details/1/spread-1.jpg"</span>
<span class="blurb">text text text text text.</span>
</div>
拿命拼未来 2024-08-25 14:36:56

万一这对将来有帮助,卡里姆告诉我这样做:

function toggleDetail1() {
$('.toggleitem').hide();
$('#bookdetail1').show(); }

in case this will help any1 in the future karim told me to do this:

function toggleDetail1() {
$('.toggleitem').hide();
$('#bookdetail1').show(); }
无妨# 2024-08-25 14:36:56

我就是这样做的:

<photo image="images/02.jpg" data-detail="bookdetail1">

<div class="toggleitem" id="bookdetail1">
    <span class="cover"><img src="images/details/1/cover-1.jpg"</span>
    <span class="spread"><img src="images/details/1/spread-1.jpg"</span>
    <span class="blurb">text text text text text.</span>
</div>

然后对所有照片元素运行以下命令:

$("photo").on("click", function(){
    var $this = $(this),
        detail = $this.data("detail"),
        $detail = $("#"+detail);
    // If you want to toggle the show/hide just use .toggle()
    if ($detail) {
        $detail.toggle();
    }
    // If you want to execute additional when you toggle:
    /*
        if ($detail.is(":visible")) {
            $detail.hide();
            // do more stuff when it's hidden
        } else {
            $detail.show();
            // do more stuff when it's shown
        }
    */
});

This is how I'd do it:

<photo image="images/02.jpg" data-detail="bookdetail1">

<div class="toggleitem" id="bookdetail1">
    <span class="cover"><img src="images/details/1/cover-1.jpg"</span>
    <span class="spread"><img src="images/details/1/spread-1.jpg"</span>
    <span class="blurb">text text text text text.</span>
</div>

Then run this for all the photo elements:

$("photo").on("click", function(){
    var $this = $(this),
        detail = $this.data("detail"),
        $detail = $("#"+detail);
    // If you want to toggle the show/hide just use .toggle()
    if ($detail) {
        $detail.toggle();
    }
    // If you want to execute additional when you toggle:
    /*
        if ($detail.is(":visible")) {
            $detail.hide();
            // do more stuff when it's hidden
        } else {
            $detail.show();
            // do more stuff when it's shown
        }
    */
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文