【问题标题】:JQuery Sliding Up each element that have an id that start with "F" with a delayJQuery向上滑动每个具有以“F”开头的id的元素延迟
【发布时间】:2013-07-29 19:00:42
【问题描述】:

我有几个<div> 希望使用 JQuery 制作动画。我需要显示第一个 <div> 7 秒。然后向下滑动并显示下一个<div> 7 秒。

这是我的<div> 的 HTML 代码:

<?php 
header('Content-Type: text/html; charset=UTF-8');
?>
<div id='F1' class='Nouvelles' style='background- image:url(../ImagesAnnonces/google_chrome.png); background-size:contain;'>
    <h2>test</h2>
    <p>test</p>
</div>
<div id='E2' class='Nouvelles' style='background-image:url(../ImagesAnnonces/images.jpeg); background-size:contain;'>
    <h2>test</h2>
    <p>test</p>
</div>
<div id='F3' class='Nouvelles' style='background-image:url(../ImagesAnnonces/); background-size:contain;'>
    <h2>test 2 FR</h2>
    <p></p>
</div>

为此,我尝试了以下代码:

$(document).ready
        (function(){
            $.ajax(
            {
                url:"handlingPub.php",
                type:"GET",
                dataType:"text",
                contentType:"application/x-www-form-urlencoded;charset=UTF-8",
                success:function(code_html, status)//code_html contains all the `<div>`
                            {
                                $("#divPub").append(code_html);
                                $(".Nouvelles").css(
                                    {
                                        height:"90px",
                                        display:"none",
                                        padding:"0px",
                                        margin:"10px",
                                        overflow:"hidden",
                                        border:"solid white 2px"
                                    });
                                $('.Nouvelles[id^="F"]:lt(1)').css("display", "block");
                                $(".Nouvelles h2").css({padding:"0px", margin:"0px"});
                            } 
            });


            function()
            {
                $('.Nouvelles[id^="F"]').each(function()
                    {
                        $(this).slideUp().delay(7000);
                        if($(this).next() != null)
                        {
                            $(this).next().slideDown();
                        }
                    });

            }
        });

现在问题来了: 第一个&lt;div&gt; 正确显示。 但我无法进入$('.Nouvelles[id^="F"]').each(function(){//I cant get here}); 我不知道为什么。有什么地方我犯了错误吗?

哦!顺便说一句,我只需要 &lt;div&gt; 有一个以 'F' 开头的 id 所以只有 F1 和 F3 而不是 E2。

非常感谢!

【问题讨论】:

    标签: jquery selector delay each


    【解决方案1】:

    $('.Nouvelles[id^="F"]').each 调用是在函数内部进行的,而您似乎并未调用该函数。在这种情况下,您只需要做您想做的事情,而不是创建一个函数来完成它。去掉 each 调用周围的 function() {} 看看是否有帮助。

    【讨论】:

    • 我听从了你的建议,但我最终命名了该函数并将其调用到我的 ajax 成功函数中。
    猜你喜欢
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    相关资源
    最近更新 更多