Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.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效果在.load之后消失_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript Jquery效果在.load之后消失

Javascript Jquery效果在.load之后消失,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在使用此脚本在我的内容上添加一些效果(翻转效果和选项卡) 有没有办法不否定它们?有些主题使用了on()函数,但我不知道如何在这里使用它。如果可能的话,我希望它不必事先点击任何地方就可以工作 是指向该站点的链接。只有页面Acceuil和Semaine Prochaine起作用。快速翻转用于第二个。 在Acceuil上也应该有一些效果(如),但效果仅在第一次加载时起作用 以下是更新的解决方案: function loadContent(href) { $mainContent

我正在使用此脚本在我的内容上添加一些效果(翻转效果和选项卡)

有没有办法不否定它们?有些主题使用了on()函数,但我不知道如何在这里使用它。如果可能的话,我希望它不必事先点击任何地方就可以工作

是指向该站点的链接。只有页面Acceuil和Semaine Prochaine起作用。快速翻转用于第二个。 在Acceuil上也应该有一些效果(如),但效果仅在第一次加载时起作用

以下是更新的解决方案:

 function loadContent(href) {
        $mainContent
                .find("#guts")
                .fadeOut(200, function () {
                    $mainContent.hide().load(href + " #guts", function () {
                        $.getScript('js/jquery.quickflip.min.js', function () {

                            $('#flip-container').quickFlip();

                            $('#flip-navigation li a').each(function () {
                                $(this).click(function () {
                                    $('#flip-navigation li').each(function () {
                                        $(this).removeClass('selected');
                                    });
                                    $(this).parent().addClass('selected');
                                    var flipid = $(this).attr('id').substr(4);
                                    $('#flip-container').quickFlipper({}, flipid, 1);

                                    return false;
                                });
                            });

                        });

                        $.getScript('tablecloth/tablecloth.js', function () {
                            tablecloth();
                        });

                        $mainContent.fadeIn(200, function () {
                            $pageWrap.animate({
                                height: baseHeight + $mainContent.height() + "px"
                            });
                        });
                        $("nav a").removeClass("current");
                        console.log(href);
                        $("nav a[href$=" + href + "]").addClass("current");



                    });
                });
    }

我认为您需要将代码添加到执行加载的函数中,而不是添加到文档中。就绪:

$('#result').load('ajax/test.html', function() {

    $('#flip-container').quickFlip();

        $('#flip-navigation li a').each(function () {
            $(this).click(function () {
                $('#flip-navigation li').each(function () {
                    $(this).removeClass('selected');
                });
                $(this).parent().addClass('selected');
                var flipid = $(this).attr('id').substr(4);
                $('#flip-container').quickFlipper({}, flipid, 1);

                return false;
            });
        });
    });
});
显然,
$('#result').load('ajax/test.html',function()
需要修改以匹配您对
load
的调用

这是因为当您尝试附加
quickFlip
时,
#flip container
不存在。您必须在调用
$(“#flip container”).quickFlip()
完成并检索到您想在其上使用的HTML后调用
quickFlip

请尝试此代码

$( document ).ready(function() {
 $('#flip-container').quickFlip();

    $('#flip-navigation li a').each(function () {
        $(this).on("click",function () {
            $('#flip-navigation li').each(function () {
                $(this).removeClass('selected');
            });
            $(this).parent().addClass('selected');
            var flipid = $(this).attr('id').substr(4);
            $('#flip-container').quickFlipper({}, flipid, 1);

            return false;
        });
    });
});

我已将
单击
事件更改为
on
如果您正在动态添加内容,它将帮助您。

您是否通过javascript向页面动态添加内容?您的“加载”语句是什么意思?您需要为这些动态添加的项目委派事件,然后…哪个元素您是否在?P.S.上使用了
.load()
。另外,您不需要这两个
.each()
循环。您只需说
$(“#翻转导航li a”)。单击(…
$(“#翻转导航li”)。removeClass('selected'))
很抱歉,我忘记了站点的链接,请查看更新后的帖子。我正在使用load动态更改页面..on()用于事件而不是插件,您需要在新添加的元素上重新初始化插件。为此,请使用load回调函数。顺便说一句,在使用load()的地方发布相关代码方法谢谢你的回答,我把它放在ligne
$mainContent.hide().load(href+“#guts”,function(){
只有在我首先加载页面Semaine Prochaine时才有效,但是如果我首先加载Acceuil,那么第二个甚至不会显示。我找到了解决方案,我必须添加这个:
$.getScript('js/jquery.quickflip.min.js',function(){
谢谢你的回答,但它仍然有相同的行为。你可以分享你的HTML或尝试给js Fiddle演示。你可以找到源代码,至于js Fiddle,我由于某种原因无法让它工作。
$('#result').load('ajax/test.html', function() {

    $('#flip-container').quickFlip();

        $('#flip-navigation li a').each(function () {
            $(this).click(function () {
                $('#flip-navigation li').each(function () {
                    $(this).removeClass('selected');
                });
                $(this).parent().addClass('selected');
                var flipid = $(this).attr('id').substr(4);
                $('#flip-container').quickFlipper({}, flipid, 1);

                return false;
            });
        });
    });
});
$( document ).ready(function() {
 $('#flip-container').quickFlip();

    $('#flip-navigation li a').each(function () {
        $(this).on("click",function () {
            $('#flip-navigation li').each(function () {
                $(this).removeClass('selected');
            });
            $(this).parent().addClass('selected');
            var flipid = $(this).attr('id').substr(4);
            $('#flip-container').quickFlipper({}, flipid, 1);

            return false;
        });
    });
});