gpt4 book ai didi

javascript - jQuery 条件式,else 语句无效?

转载 作者:行者123 更新时间:2023-12-03 03:45:45 25 4
gpt4 key购买 nike

我正在为一个项目开发一个小型示例库,该项目通过删除和重新分配识别类来使用右/左按钮移动图像,然后将图像附加到显示元素。

我尝试为我的变量之一引入 if/else 条件语句,其中“else”语句旨在选择与事件图像相对的图像(如果它位于数组末尾)(如果说事件图像是画廊中的最后一个图像,我希望 else 语句为右侧按钮选择第一张图像)。然而,我的声明的 else 语句不起作用,并且事件类被分配给 DOM 中下一个元素。

HTML:

    <h2>Random Image Gallery</h2>

<div id="display"></div>

<div class="active slider" id="slide1">
<img src="images/482.jpg" alt="random image boats">
<p>Boats on a River</p>
</div>

<div class="slider" id="slide2">
<img src="images/1109-600x376.jpg" alt="random image">
<p>Grey Landscape</p>
</div>

<div class="slider" id="slide3">
<img src="images/1648jpg" alt="random image3">
<p>River Dock</p>
</div>

<article>

<button id="lbutton">Left</button>

<button id="rbutton">Right</button>

</article>

javascript(带有对相关条件的注释):

jQuery("#rbutton").on("click", function() {
"use strict";

var active = jQuery("div#gallerybox > div.active");
//"else" conditional is inert?
var next = active.next("div.slider") ? active.next("div.slider") : jQuery("div#slide1");

var nextImage = next.find("img").clone().addClass("dis");

var display = jQuery("div#display");

var prevDisImg = display.find("img.dis ~ img.dis") ? display.find("img:first-of-type") : null() ;

nextImage.appendTo("div#display");

prevDisImg.remove();

next.addClass("active");

active.removeClass("active");


});
//This button works
jQuery("#lbutton").on("click", function() {
"use strict";

var active = jQuery("div#gallerybox > div.active");

var previous = active.prev("div.slider").length ? active.prev("div.slider") : jQuery("div#gallerybox > div:last");

var prevImage = previous.find("img").clone().addClass("dis");

var display = jQuery("div#display");

var nextDisImg = display.find("img.dis + img.dis") ? display.find("img:last-of-type") : null();

prevImage.appendTo("div#display");

nextDisImg.remove();

previous.addClass("active");

active.removeClass("active");

});

我的“else”声明哪里出了问题?或者我是否会以错误的方式实现条件?

最佳答案

jQuery 总是返回一个新的 jquery 对象,并且它们是真实的,所以你正在这样做:

var result = {} ? "truthy":" objects are never falsy";

您可以检查 jquery 集合的 length 属性:

var previous = active.prev("div.slider").length ? active.prev("div.slider") : jQuery("div#gallerybox > div:last");

关于javascript - jQuery 条件式,else 语句无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45399034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com