Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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中的href标记加载div中的内容_Javascript_Jquery_Html - Fatal编程技术网

Javascript 从jQuery中的href标记加载div中的内容

Javascript 从jQuery中的href标记加载div中的内容,javascript,jquery,html,Javascript,Jquery,Html,我想在幻灯片中显示之前加载所有图像。我一直在寻找,但似乎什么都不管用。这是我到目前为止所做的,但它不起作用。我正在从另一个div的标记加载图像 $('.slideshow').load(function(){ if (loaded<length){ first = $(settings.thumb).eq(loaded).find('a').attr("href"); $('<img src="'+first1+'"/>').append

我想在幻灯片中显示之前加载所有图像。我一直在寻找,但似乎什么都不管用。这是我到目前为止所做的,但它不起作用。我正在从另一个div的
标记加载图像

$('.slideshow').load(function(){
    if (loaded<length){
        first = $(settings.thumb).eq(loaded).find('a').attr("href");
        $('<img src="'+first1+'"/>').appendTo('.slideshow');
    }
    else{ $('.slideshow').show(); }
    loaded++;
});
$('.slideshow').load(函数(){

如果(已加载在浏览器加载完图像后,为每个图像添加一个事件侦听器以响应,则将其附加到幻灯片中

var $images = $("#div_containing_images img");
var numImages = $images.length;
var numLoaded = 0;
var $slideshow = $(".slideshow");

$images.each(function() {
  var $thisImg = $(this);
  $thisImg.on("load", function() {
    $thisImg.detach().appendTo($slideshow);
    numLoaded++;
    if (numLoaded == numImages) {
      $slideshow.show();
    }
  });
});
如果图像加载失败,最好也监听
错误
事件。这样,您可以增加
加载的
来解释损坏的图像。否则,如果图像损坏,您的幻灯片将永远不会显示

还要注意的是,通过调用
detach()
然后调用
appendTo()
我正在DOM中移动图像。如果要复制图像,请使用
clone()
而不是
detach()

*编辑以修改用户的确切用例*

  var $images = $("li.one_photo a");
  var numImages = $images.length;
  var numLoaded = 0;

  $images.each(function() {
    $('<img />',
      { src: $(this).attr("href") })
      .appendTo('.slideshow')
      .on("load error", function() {
        numLoaded++;
        if(numLoaded == numImages) {
          $('.slideshow').show();
        }
      });
  });
var$images=$(“li.one_photo a”);
var numImages=$images.length;
var numload=0;
$images.each(函数(){
$('
*编辑#2*

  var $images = $("li.one_photo a");
  var numImages = $images.length;
  var numLoaded = 0;

  $images.each(function() {
    $('<img />',
      { src: $(this).attr("href") })
      .appendTo('.slideshow')
      .on("load error", function() {
        numLoaded++;
        if(numLoaded == numImages) {
          $('.slideshow').show();
        }
      });
  });

刚刚意识到您正在将所有内容放入
$(“.slideshow”).load()函数中。因为
$(“.slideshow”)
表示一个DIV,它永远不会引发
load
事件,相应的函数也永远不会执行。上面进行了相应的编辑。

我们需要更多信息。
加载了什么?
长度是多少?
可能是您的HTML标记。“它不起作用”通常不太受欢迎。您可以阅读控制台吗?也许这可以帮助您它是一个库,可以帮助您检测图像加载。在幻灯片中实现自动播放之前,我正在尝试缓存或加载标签中的图像。我没有使用加载功能,但每次加载新图像时,它都会将我放在页面顶部。a在图像播放一次之后,一切都很好。这就是为什么我认为如果我首先加载或缓存图像,这将不会发生。Thnx:-)…还有一个问题,应该从
  • 标记中加载图像。如何从中加载链接?您可以完全按照上面所做的操作创建附加到幻灯片中的新图像元素。但是,您仍然需要将事件侦听器添加到附加的每个图像,而不是立即递增的
    加载。然后在
    加载
    错误
    事件触发时增量加载。我在回答中添加了增量,以显示您可以如何准确完成您正在尝试的操作。