[英]Execute function after ajax call finished
I know, this was asked several times on SO (eg here ), but nothing worked for me.我知道,这在 SO 上被问了好几次(例如这里),但对我没有任何帮助。
I have a JSON Import via ajax.我有一个 JSON 通过 ajax 导入。 This imports data for a slick slider.
这将导入光滑 slider 的数据。 So the slick slider should be initialized after the ajax import finished.
所以光滑的 slider 应该在 ajax 导入完成后初始化。
My Code:我的代码:
// Import Ticker
$.ajax({
url: '/de/data/data.json',
type: 'GET',
datatype: 'json'
}).success(function (data) {
for (var i = 0; i < data.length; i++) {
var obj = data[i];
$('section.ticker .slider').append(`
<div class="slide">1</div>
<div class="slide">2</div>
<div class="slide">3</div>
`)};
$(document).on('ready', function() {
$('.slider').slick({
infinite: true,
slidesToShow: 3,
slidesToScroll: 3
});
});
// Error handler
}).error(function (err) {
console.log(err);
})
I also tried:我也试过:
}).success(function (data) {
for (var i = 0; i < data.length; i++) {
var obj = data[i];
$('section.ticker .slider').append(`
<div class="slide">1</div>
...
`)};
}.complete: function (data) {
$('.slider').slick({
infinite: ...
});
}).error(function (err) {
console.log(err);
})
Or this:或这个:
$( document ).ajaxStop(function() {
$('.slider').slick({
infinite: ...
});
});
Please remove slick initialisation from $(document).on('ready',function(){});
请从
$(document).on('ready',function(){});
中删除光滑的初始化。
Your code will look like你的代码看起来像
$.ajax({
url: '/de/data/data.json',
type: 'GET',
datatype: 'json'
}).success(function (data) {
for (var i = 0; i < data.length; i++) {
var obj = data[i];
$('section.ticker .slider').append(`
<div class="slide">1</div>
<div class="slide">2</div>
<div class="slide">3</div>
`)};
$('.slider').slick({
infinite: true,
slidesToShow: 3,
slidesToScroll: 3
});
// Error handler
}).error(function (err) {
console.log(err);
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.