【发布时间】:2023-12-23 23:24:01
【问题描述】:
我需要将 owl carousel 及其所有 CSS 应用到来自 ajax 调用的动态 HTML 元素。
目前,代码如下所示:
jQuery(function ($) {
$('.entry-content').addClass('entry-content--quiz')
$('.get-questions').on('click', function (e) {
e.preventDefault();
let url = $(this).attr('href');
$.ajax({
url: url,
}).done(function (data) {
$('.entry-content').html(data);
$('#wpvq-page-0').owlCarousel({
items:1,
slideBy: 1,
stagePadding: 0,
nav: true,
dots: false,
});
}).fail(function (err) {
console.log('ajax err back', err);
});
return false;
});
});
这显然不起作用并抛出“owl carousel is not a function”,因为它在初始加载时不在 DOM 中。我需要以某种方式将轮播应用到来自data 的 div。
我找到了一些相关的答案,但它们与我的情况无关:
Load dynamic content in Owl Carousel 2
How to re-render a owl-carousel item?
他们看起来像是重写了 DOM,但在我正在做的事情的上下文中它没有意义。
如何在来自 ajax 调用的 HTML 中的 div 上放置猫头鹰轮播?
编辑 2018 年 12 月 10 日完整示例:
jQuery(function ($) {
$('#link').on('click', function (e) {
e.preventDefault();
let url = $(this).attr('href');
$.ajax({
url: url,
}).done(function (data) {
$('#content').html(data);
$('#carousel-section').addClass("owl-carousel");
setTimeout(function() {
$('#carousel-section').owlCarousel({
items:1,
slideBy: 1,
stagePadding: 0,
nav: true,
dots: false,
});
},1000)
}).fail(function (err) {
console.log('ajax err back', err);
});
return false;
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css">
<div id="content"></div>
<a id="link" href="http://silly-stallman-3e4b6f.netlify.com/index.html">Cclick</a>
我无法让 HTML 填充到 DIV idk 中,为什么它不起作用,但这是我正在做的示例 - 获取静态 HTML (http://silly-stallman-3e4b6f.netlify.com/index.html) 并将其放入 ajax 调用中,用它填充页面,然后需要以某种方式将 owl carousel 定位到动态 HTML。我该怎么做?
【问题讨论】:
-
我们能看到它的实际效果吗? (通过网址)
-
我正在努力等待
-
@Toni Michel Caubet 我已经包含了一个完整的示例,但我无法获取 HTML 来填充 idk 为什么它不起作用但你可以看到我在问题的上下文中在做什么.通过 AJAX 拉入 HTML,然后需要在动态 HTML 上点击 owl carousel - silly-stallman-3e4b6f.netlify.com/index.html
-
@kwanah 我在那里看不到任何 javascript
-
我按照您的代码步骤进行操作,显然是正确的,您遇到的错误是什么?是不是和 CORS 有关?
标签: javascript jquery ajax owl-carousel