【问题标题】:How to end .empty()如何结束 .empty()
【发布时间】:2013-12-17 01:48:18
【问题描述】:

我在一个函数上有一个数组(allArr)数组,第一次从位置 0 的 allArr 的数组是从位置 0 的图像从另一个数组的图像(命名图像)'因为 document.ready 然后点击来自 allArr 的按钮 (id="nextimageandshuffle") 数组和来自图像数组的图像达到第五位。我的问题是每次单击下一个按钮时,我必须使用 empty() 清除 div(id="array") 其中来自 allArr 的数组添加了 append() 但我不能在第 5 个数组之后停止它,所以第 5 个图像(来自图像数组)仍然存在,但第 5 个数组(来自 allArr)它被删除了......

这是我的代码:

var allArr;
var contor = 0;
var i = 0;

$(document).ready( function() { 

    var arr = new Array("images/alfabet/w.png", "images/alfabet/f.png", "images/alfabet/v.png", "images/alfabet/a.png", "images/alfabet/b.png", "images/alfabet/p.png", "images/alfabet/o.png", "images/alfabet/r.png");
    var baiat = new Array("images/alfabet/p.png", "images/alfabet/b.png", "images/alfabet/a.png", "images/alfabet/aa.png", "images/alfabet/i.png","images/alfabet/a.png", "images/alfabet/t.png");
    var colac = new Array("images/alfabet/g.png", "images/alfabet/c.png", "images/alfabet/u.png", "images/alfabet/o.png", "images/alfabet/l.png", "images/alfabet/a.png", "images/alfabet/c.png");
    var slapi = new Array("images/alfabet/s.png", "images/alfabet/ss.png", "images/alfabet/l.png", "images/alfabet/a.png", "images/alfabet/b.png", "images/alfabet/p.png", "images/alfabet/i.png", "images/alfabet/i.png");
    var umbrela = new Array("images/alfabet/u.png", "images/alfabet/n.png", "images/alfabet/m.png", "images/alfabet/p.png", "images/alfabet/b.png", "images/alfabet/r.png", "images/alfabet/e.png", "images/alfabet/l.png", "images/alfabet/a.png");
    allArr = new Array(arr, baiat, colac, slapi, umbrela);
    for(i=0; i<allArr[0].length; i++) 
    {
        var img = new Image();
                    img.src = allArr[0][i];
            $('#array').append(img);

        }
});

var image = new Array("images/baiat.png", "images/colac.png" , "images/slapi.png" , "images/umbrela.png");

var imgNumber=0; 

var numberOfImg = image.length;

function nextImage(){
  if(imgNumber < numberOfImg){
    imgNumber++;
    }
  document.slideImage.src = image[imgNumber-1];

   contor++; 

   $("#array").empty();


   for(i = 0; i<allArr[contor].length; i++) 
    {
        var img = new Image();
        img.src = allArr[contor][i];
        $('#array').append(img);

    }


 }

if(document.images){

   var image1 = new Image();
   image1.src = "images/vapor.png";
   var image2 = new Image();
   image2.src = "images/baiat.png";
   var image3 = new Image();
   image3.src = "images/colac.png";
   var image4 = new Image();
   image4.src = "images/slapi.png";
   var image5 = new Image();
   image5.src = "images/umbrela.png";

   }

HTML:

<img src="images/vapor.png" name="slideImage" class='secondcanvas' width='450' height='300' alt="">
       <div id="array" class='thirdcanvas'></div>  
<a href="#" onClick="nextImage()"><img id="nextimageandshuffle" src="images/nextBtn.png" title="Continuare" ></a>

【问题讨论】:

    标签: javascript jquery html arrays


    【解决方案1】:

    我不确定我是否完全理解你想要做什么,但我想我明白了......

    您需要确定您是否在最后一张图片上,因为如果不是,您仍想清空该元素。将当前图像 src 与 allArr[4][4] 中的字符串进行比较,如果它们匹配,则不要执行 .empty()。所以不仅仅是:

    $("#array").empty();
    

    你会想用类似的东西替换它:

    if(img.src == allArr[4][4]){
        return;
    }else{
        $("#array").empty();
    }
    

    【讨论】:

    • 酷,我在考虑使用 if 时忘记添加 else,但是我的和你的 if 不起作用...我们必须将图像数组中的最后一个位置图像与 allArr 中名为 umbrela 的最后一个数组相等。 ..如果我们点击next直到umbrela数组,停止.empty()否则做.empty()
    • 啊,我明白了。当我最初阅读它时,我以为您在每次单击“下一步”时都会即时拉取图像。如果在加载文档时它们都被填充,那么您就需要抓住该位置。很高兴我能帮上忙!
    • 我想出了怎么做,我为 contor 在第 4 个数组之后结束做了一个条件,所以,从现在开始,即使我点击下一步..不能在第 4 个数组之后:D跨度>
    【解决方案2】:

    不确定我是否真的了解您的问题。但是,如果您想在调用empty() 后保留div 标记中的最后一张图片,则只需再次附加它即可:

    $("#array").empty();
    var lastImage = new Image();
    lastImage.src = allArr[4][4];
    $("#array").append(lastImage);
    

    请告诉我这是否有帮助。

    【讨论】:

    • 它做了一些事情,但不是我需要的:(谢谢你的回答:D @Ant 用 if 回答,看起来很有趣,我一直这么想,但没有别的
    猜你喜欢
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    相关资源
    最近更新 更多