Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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
Jquery 附加图像赢得';没有悬停效果_Jquery_Hover_Append - Fatal编程技术网

Jquery 附加图像赢得';没有悬停效果

Jquery 附加图像赢得';没有悬停效果,jquery,hover,append,Jquery,Hover,Append,所以我注意到了这一点。基本上,我的代码在调整窗口大小时会在末尾附加一组图像,这样就有了一行连续的图像,而不是会影响设计的突然结尾。因此,根据屏幕大小,我可能会添加4个或2个图像 function imageNumber() { $('#images br').remove(); $('.appended').remove(); var windowWidth = $(window).width(); var numberOfImages = $("#i

所以我注意到了这一点。基本上,我的代码在调整窗口大小时会在末尾附加一组图像,这样就有了一行连续的图像,而不是会影响设计的突然结尾。因此,根据屏幕大小,我可能会添加4个或2个图像

function imageNumber() { 

    $('#images br').remove();
    $('.appended').remove();

    var windowWidth = $(window).width(); 


    var numberOfImages = $("#images img").length;
    var numberOfImagesPerRow = Math.ceil(windowWidth / imageWidth);

    $('#images img:nth-child('+numberOfImagesPerRow+'n)').after('<br />')
    $('#images br:last-child').remove();

    var nuLineBreaks = $('br').length + 1;

    if(numberOfImages % numberOfImagesPerRow != 0) {

         var numberOnRow = Math.round((1 - (numberOfImages/numberOfImagesPerRow % 1)) * numberOfImagesPerRow); 
         var number = 0;

         while(number <= numberOnRow) { 

            $('.i'+number).clone().appendTo($('#images')).attr('class', 'appended');
            ++number;

         }

    }

}

你知道如何解决这个问题吗?

你有哪个版本的jQuery?如果是1.7,那么看看on方法:如果是更早的,那么看看live:

您有哪个版本的jQuery?如果是1.7,请查看on方法:如果是更早,请查看live:

没错,添加到页面中的图像没有悬停效果。这是因为事件处理程序仅附加到调用
hover()
时找到的jQuery元素。新元素(如由
clone()
创建的元素)没有附加任何事件处理程序

在您的情况下,您可能希望使用
clone(true)
,这将导致

另一个选项是使用
on()
将悬停事件附加到父元素(#images),并指定一个选择器来筛选应触发事件的子元素,如下所示:

$("#images").on("mouseover", "img", function() {
    // mouseover code
}).on("mouseleave", "img", function() {
    // mouseleave code
});

在这种情况下,由于事件处理程序附加到#images,因此无论将来添加什么
img
元素,它都会被触发。

没错,添加到页面的图像没有悬停效果。这是因为事件处理程序仅附加到调用
hover()
时找到的jQuery元素。新元素(如由
clone()
创建的元素)没有附加任何事件处理程序

在您的情况下,您可能希望使用
clone(true)
,这将导致

另一个选项是使用
on()
将悬停事件附加到父元素(#images),并指定一个选择器来筛选应触发事件的子元素,如下所示:

$("#images").on("mouseover", "img", function() {
    // mouseover code
}).on("mouseleave", "img", function() {
    // mouseleave code
});

在这种情况下,由于事件处理程序附加到#images,因此无论将来添加什么
img
元素,它都会被触发。

感谢您的帮助!但是下面的人提供了更多的信息:3谢谢你的帮助!但下面这个人提供的信息要多一些:3