Javascript 在jquery中修改HTML时如何刷新对象?

Javascript 在jquery中修改HTML时如何刷新对象?,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我有一个加载了jQuery内容的页面,其中一个div将是一个滑块 $('#slides').slides({ preload: true, preloadImage: 'img/loading.gif', play: 6000, pause: 2500, hoverPause: true, slideSpeed: 1000, an

我有一个加载了jQuery内容的页面,其中一个div将是一个滑块

$('#slides').slides({
            preload: true,
            preloadImage: 'img/loading.gif',
            play: 6000,
            pause: 2500,
            hoverPause: true,
            slideSpeed: 1000,
            animationStart: function(current){
                $('.caption').animate({
                    bottom:-35
                },100);
            },
            animationComplete: function(current){
                $('.caption').animate({
                    bottom:0
                },200);
            },
            slidesLoaded: function() {
                $('.caption').animate({
                    bottom:0
                },200);
            }
        });
    });
现在,html的结构如下所示:

<div id"content">
   <div id="slider"></div>
</div>
如果用户回到家中,只需:

$("#content").html(homepage);
但是接下来是
$('#slides').slides()不再工作了

我该如何解决这个问题

试试这个

将滑块放入函数中

function SliderCode()
{

$('#slides').slides({
            preload: true,
            preloadImage: 'img/loading.gif',
            play: 6000,
            pause: 2500,
            hoverPause: true,
            slideSpeed: 1000,
            animationStart: function(current){
                $('.caption').animate({
                    bottom:-35
                },100);
            },
            animationComplete: function(current){
                $('.caption').animate({
                    bottom:0
                },200);
            },
            slidesLoaded: function() {
                $('.caption').animate({
                    bottom:0
                },200);
            }
        });
    });
}
再次设置hompage callslider函数后

$("#content").html(homepage);
SliderCode();
我没有测试代码。希望它能起作用。

试试这个

将滑块放入函数中

function SliderCode()
{

$('#slides').slides({
            preload: true,
            preloadImage: 'img/loading.gif',
            play: 6000,
            pause: 2500,
            hoverPause: true,
            slideSpeed: 1000,
            animationStart: function(current){
                $('.caption').animate({
                    bottom:-35
                },100);
            },
            animationComplete: function(current){
                $('.caption').animate({
                    bottom:0
                },200);
            },
            slidesLoaded: function() {
                $('.caption').animate({
                    bottom:0
                },200);
            }
        });
    });
}
再次设置hompage callslider函数后

$("#content").html(homepage);
SliderCode();

我没有测试代码。希望它能起作用。

您可以使用
.load()
中的
完成
,检查您的内容中是否有
滑块。如果是,请再次初始化
幻灯片
插件

var homepage = $('#content'),
options = {
    generateNextPrev: true,
    play: 1000
};
$('#slides').slides(options);

// Button click or something
$('#content').load('myContent.html', function(response, status, xhr) {
   if ($(response).find('#slider').length > 0) {
       $('#slides').slides(options);
   }
});
编辑:


我制作了一个jsfiddle来演示它,但是jsfiddle有服务器问题,所以我制作了一个codepen演示。再次调用插件对我来说很有效(尽管我只是用
.html()
替换内容来模拟ajax请求)。

您可以使用
.load()
中的
完成
来检查您的内容中是否有
滑块。如果是,请再次初始化
幻灯片
插件

var homepage = $('#content'),
options = {
    generateNextPrev: true,
    play: 1000
};
$('#slides').slides(options);

// Button click or something
$('#content').load('myContent.html', function(response, status, xhr) {
   if ($(response).find('#slider').length > 0) {
       $('#slides').slides(options);
   }
});
编辑:


我制作了一个jsfiddle来演示它,但是jsfiddle有服务器问题,所以我制作了一个codepen演示。再次调用插件对我来说很有效(尽管我只是用
.html()
替换内容来模拟ajax请求)。

有更好的方法吗?比如销毁.slides();第一我该怎么做?或者你可以在iframe中放置滑块。如果hompage htmli中的iframe使用的是XHTML 1.0 strict,我不能使用iframesOkay,那么我建议显示或隐藏包含slider的容器元素,而不是一直设置整个HTML;有更好的方法吗?比如销毁.slides();第一我该怎么做?或者你可以在iframe中放置滑块。如果hompage htmli中的iframe使用的是XHTML 1.0 strict,我不能使用iframesOkay,那么我建议显示或隐藏包含slider的容器元素,而不是一直设置整个HTML;我确信#幻灯片会在那里,因为它存储在“var主页”中,我要问的是如何制作幻灯片();在替换html后再次工作,然后将相同的html(带幻灯片的html)放回原处again@Tom91136还要确保您正在调用
$(“#slides”).slides(选项)
。如果这也不起作用,请在调用
slides()
之前保存
homepage
变量。我已经编辑了上面的示例。我确信#幻灯片会在那里,因为它存储在“var homepage”中,我要问的是如何制作幻灯片();在替换html后再次工作,然后将相同的html(带幻灯片的html)放回原处again@Tom91136还要确保您正在调用
$(“#slides”).slides(选项)
。如果这也不起作用,请在调用
slides()之前保存
homepage
变量。
我已经编辑了上面的示例。