javascript - 使用 jquery 选择页面加载后添加的元素

标签 javascript jquery html css

我正在制作一个页面,通过在到达页面顶部或底部时复制内容来不断上下滚动,使用以下代码:

var html = $("#wrapper").html();
var what = '<div id="wrapper">'+html+'</div>';
$(window).scrollTop(1);
$(window).scroll(function() {
    if ( $(window).scrollTop() >= ($('body').height() - $(window).height()) ) {
        $("#wrapper").last().after(what);
        if ($("#wrapper").length > 2) {
            $("#wrapper").last().prev().remove();
            $(window).scrollTop($(window).scrollTop() - $("#wrapper").first().height());
        }
    }
    else if ( $(window).scrollTop() == 0 ) {
        $("#wrapper").first().before(what);
        $(window).scrollTop($("#wrapper").first().height());
        if ($("#wrapper").length > 2) {
            $("#wrapper").last().remove();
        }
    }    
});

这是它工作的 html:

<div id="wrapper">
    <div class="what">
        <div class="box">
            <div class="boxcontent">
                <img src="1.jpg" />
                <p class="caption">
                    Caption
                </p>
            </div>
        </div>
        <div class="box">
            <div class="boxcontent">
                <img src="2.jpg" />
                <p class="caption">
                    Caption
                </p>
            </div>
        </div>
        <div class="box">
            <div class="boxcontent">
                <img src="3.jpg" />
                <p class="caption">
                    Caption
                </p>
            </div>
        </div>
        <div class="box">
            <div class="boxcontent">
                <img src="4.jpg" />
                <p class="caption">
                    Caption
                </p>
            </div>
        </div>
        <div class="box">
            <div class="boxcontent">
                <img src="5.jpg" />
                <p class="caption">
                    Caption
                </p>
            </div>
        </div>
        <div class="box">
            <div class="boxcontent">
                <img src="1.jpg" />
                <p class="caption">
                    Caption
                </p>
            </div>
        </div>
        <div class="box">
            <div class="boxcontent">
                <img src="6.jpg" />
                <p class="caption">
                    Caption
                </p>
            </div><!-- .boxcontent -->
        </div><!-- .box -->
    </div><!-- .what -->
</div><!-- #wrapper -->

一切正常,但现在问题来了。字幕是隐藏的,并在悬停时显示。它适用于页面加载时可见的元素,但不适用于滚动功能添加的元素。

我尝试过使用 jquery 的 live() 和 on() 方法,但没有成功。这是我尝试过的代码,(并且适用于页面加载时出现的元素)

$('.boxcontent').on({
    mouseenter: function(){
        $( this ).find( '.caption' ).fadeIn(200)
    },
    mouseleave: function(){
        $( this ).find( '.caption' ).fadeOut(200)
    }
});

有人对我可能做什么有任何意见吗?非常感谢您的帮助。

最佳答案

您必须正确使用它,并将事件委托(delegate)给页面加载时存在的父级

$('#wrapper').on({
    mouseenter: function(){
        $( this ).find( '.caption' ).fadeIn(200)
    },
    mouseleave: function(){
        $( this ).find( '.caption' ).fadeOut(200)
    }
}, '.boxcontent');

关于javascript - 使用 jquery 选择页面加载后添加的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29369764/

相关文章:

javascript - Jquery 选择器后的 [] 括号是什么意思?

jquery - Bootstrap不使用复选框的 "checked"属性

javascript - 为什么 js 无法理解字符串 '&lt;/script&gt;'?

javascript - 使用 json stringify html 表单结果时为空数据

javascript - 同时比较 json 项目值

php - 关于如何将 JS onchange 事件传递给 PHP 的建议

javascript - AJAX/jQuery 表单提交 shoutbox

javascript - 为什么这段代码添加空的 img 标签?

javascript - 试图从显示 : hidden to display: block 更改 jquery 元素

php - 创建 php 数据库并显示其内容