Javascript 自动更新滑块jquery内的div内容
当MySQL已更改或添加了新行时,如何在slider jquery自动更新中获取div内容 我试过使用我的代码,但我的滑块不工作,无法滑动任何div内容 我的代码: index.phpJavascript 自动更新滑块jquery内的div内容,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,当MySQL已更改或添加了新行时,如何在slider jquery自动更新中获取div内容 我试过使用我的代码,但我的滑块不工作,无法滑动任何div内容 我的代码: index.php <html> <head> <script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"> </script> <script type="tex
<html>
<head>
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js">
</script>
<script type="text/javascript" src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript" src="slick.min.js"></script>
<link rel="stylesheet" type="text/css" href="slick.css" />
<link rel="stylesheet" type="text/css" href="slick-theme.css" />
<script type="text/javascript">
$(document).ready(function () {
$('.single-item').slick({
dots: false,
infinite: true,
speed: 700,
slidesToShow: 1,
slidesToScroll: 1,
arrows: true,
});
});
</script>
<script type="text/javascript">
$(document).ready(function () {
$.ajaxSetup({
cache: false
});
setInterval(function () {
$('.single-item').load('item.php');
}, 3000);
});
</script>
<style type="text/css">
body {
background-color: darkturquoise;
}
</style>
</head>
<div class="single-item" style="width: 500px; height: 500px; margin: auto;">
</div>
</html>
<?php
include 'connect.php';
$sql = mysql_query("SELECT * FROM fm_product WHERE p_pined = 'PINED'") or die(mysql_error());
while($result = mysql_fetch_array($sql)){
echo '<div style="background-color: white; height: 200px;">'.$result['p_id'].'</div>';
}
?>
$(文档).ready(函数(){
美元(“.单项”)。光滑({
点:错,
无限:是的,
速度:700,,
幻灯片放映:1,
幻灯片滚动:1,
箭头:是的,
});
});
$(文档).ready(函数(){
$.ajaxSetup({
缓存:false
});
setInterval(函数(){
$('.single item').load('item.php');
}, 3000);
});
身体{
背景色:暗绿色;
}
item.php
<html>
<head>
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js">
</script>
<script type="text/javascript" src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript" src="slick.min.js"></script>
<link rel="stylesheet" type="text/css" href="slick.css" />
<link rel="stylesheet" type="text/css" href="slick-theme.css" />
<script type="text/javascript">
$(document).ready(function () {
$('.single-item').slick({
dots: false,
infinite: true,
speed: 700,
slidesToShow: 1,
slidesToScroll: 1,
arrows: true,
});
});
</script>
<script type="text/javascript">
$(document).ready(function () {
$.ajaxSetup({
cache: false
});
setInterval(function () {
$('.single-item').load('item.php');
}, 3000);
});
</script>
<style type="text/css">
body {
background-color: darkturquoise;
}
</style>
</head>
<div class="single-item" style="width: 500px; height: 500px; margin: auto;">
</div>
</html>
<?php
include 'connect.php';
$sql = mysql_query("SELECT * FROM fm_product WHERE p_pined = 'PINED'") or die(mysql_error());
while($result = mysql_fetch_array($sql)){
echo '<div style="background-color: white; height: 200px;">'.$result['p_id'].'</div>';
}
?>
我不确定这是否是一个完整的答案,但一个主要问题在于您对.load
的使用以及它与slick slider插件的交互(或缺乏交互)
页面上事件的顺序如下所示:
dom已加载并准备就绪
滑动条在上进行了初始化。单个项目
。.single item
(目前没有)的内容将替换为slick slider的HTML,以正确设置和呈现幻灯片、控制按钮等。
- 这一点很重要,因为
.single item
现在充满了许多不同的HTML元素。如果您不确定它是什么样子的,-请查看页面源代码,然后使用开发人员工具查看源代码,以查看其外观的变化
- 此外,
.single item
最初从未包含任何内容,因此它将呈现零张幻灯片。此时,您已经创建了一个空滑块
您的setInterval
事件已注册
3秒钟过去了
您的setInterval
事件第一次触发。对item.php
进行了修改,它以HTML响应—一组包含数据的样式化div
。
- 此时,您可以使用开发人员工具通过监视网络请求区域来确认
item.php
正在返回正确的数据
您的脚本接受请求-响应(HTML)并完全替换单个项目的内容。
- 此时,警钟应该敲响了,因为这会立即导致该元素中的内容(slick的HTML设置)与它所替换的内容之间发生冲突。如果您查看开发人员工具控制台,您甚至可能会发现一些错误从slick弹出,抱怨缺少元素
转到步骤4
发生的情况是,您的.load
调用正在替换包含光滑滑块设置的元素的内容,完全破坏了滑块
您需要做的是改变处理AJAX的方式。您应该放弃.load
,转而使用$.ajax
以获得更好的回调控制。根据以下内容,您可以:
- 在每次XHR请求返回时-使用
$('.single item')销毁滑动条。滑动条('unslick')
,将内容插入。单个项目
,然后重新初始化滑块
- 跟踪当前幻灯片。在每次XHR返回时,检测哪些幻灯片存在,哪些不存在,并使用
.slick('slickAdd',HtmlOrDomNode
)和.slick('slickRemove'slideIndex)
希望这能有所帮助。我不确定这是否是一个完整的答案,但一个主要问题在于您对.load
的使用以及它与slick slider插件的交互(或缺乏交互)
页面上事件的顺序如下所示:
dom已加载并准备就绪
滑动条在上进行了初始化。单个项目
。.single item
(目前没有)的内容将替换为slick slider的HTML,以正确设置和呈现幻灯片、控制按钮等。
- 这一点很重要,因为
.single item
现在充满了许多不同的HTML元素。如果您不确定它是什么样子的,-请查看页面源代码,然后使用开发人员工具查看源代码,以查看其外观的变化
- 此外,
.single item
最初从未包含任何内容,因此它将呈现零张幻灯片。此时,您已经创建了一个空滑块
您的setInterval
事件已注册
3秒钟过去了
您的setInterval
事件第一次触发。对item.php
进行了修改,它以HTML响应—一组包含数据的样式化div
。
- 此时,您可以使用开发人员工具通过监视网络请求区域来确认
item.php
正在返回正确的数据
您的脚本接受请求-响应(HTML)并完全替换单个项目的内容。
- 此时,警钟应该敲响了,因为这会立即导致该元素中的内容(slick的HTML设置)与它所替换的内容之间发生冲突。如果您查看开发人员工具控制台,您甚至可能会发现一些错误从slick弹出,抱怨缺少元素
转到步骤4
发生的情况是,您的.load
调用正在替换包含光滑滑块设置的元素的内容,完全破坏了滑块
您需要做的是改变处理AJAX的方式。您应该放弃.load
,转而使用$.ajax
以获得更好的回调控制。基于