gpt4 book ai didi

jQuery Ajax 在 iOS 中不工作(使用 list.js)

转载 作者:可可西里 更新时间:2023-11-01 03:18:25 24 4
gpt4 key购买 nike

发现一项功能在我们的网站上无法使用——但只能在 iOS 设备(iPad、iPhone)上使用。

我们正在使用 list.js根据输入的内容对目录进行实时过滤。还有两个选择字段允许基于分类法进行过滤。这些工作正常。

实时过滤功能适用于 Chrome、Firefox、Safari、IE 和 Android。我不确定下一步要去哪里进行调试,因为我们已经做了以下无济于事:

  • 检查以确保没有大写/小写文件名和/或路径可能会影响 iOS。
  • 向 ajax 代码添加了一个 console.log 以确保它在 iOS 上触发(它是;由 Web Inspector 通过 Safari 验证)。
  • 通过网络检查器检查错误或警告(没有错误、没有警告、什么都没有)。

这是我们 main.js 文件中的代码:

    var listingsArray;

$.ajax({
url: php_ajax_url,
type: "POST",
data: "action=sackville_directory_feed",
async: false,
success: function(results) {
var listings = JSON.parse(results);
listingsArray = $.map(listings, function(el) {
return el;
});
},
error: function() {
console.log('Cannot retrieve data.');
}
});

var directory = {};
var directoryListings = $('.list');

directory.renderHTML = function(z, listing){
directoryListings.append('<div class="card card-directory col-lg-3 col-md-4 col-sm-6"><div class="directory-image" style="background-image: url(' + listing.image + ')"></div><h3 class="name">' + listing.name + '</h3><p class="description">' + listing.description + '</p><span>' + ( listing.address !== '' ? listing.address + ', ' : '') + ( listing.city_province !== '' ? listing.city_province : '') + ( listing.postal !== '' ? ', ' + listing.postal : '' ) + '</span><span>' + listing.phone + (listing.website !== '' ? ' | <a href="' + listing.website + '">Visit Website</a>' : '') + '</span></div>');
};

directory.init = function(){
directoryListings.empty();
$.each(listingsArray, function(i, listing){
directory.renderHTML(i, listing);
});
};

$('.directory-filters').on('change', function(){
var option = $(this).val();
var label = $(this).find('option:selected').text();
directoryListings.empty();

if(option === 'all'){
directory.init();
}

$.each(listingsArray, function(i, listing){
if(listing.hasOwnProperty('category') && listing.category.indexOf(option) >= 0){ /* If category filter is contained within listing data */
directory.renderHTML(i, listing);
} else if(listing.hasOwnProperty('theme') && listing.theme.indexOf(option) >= 0){ /* If theme filter is contained within listing data */
directory.renderHTML(i, listing);
}
});

$('#current-results').html(label);
});

/* Get it started */
directory.init();

/* List JS live search */
directory.options = {
valueNames: [ 'name', 'description', 'category' ]
};

directory.directoryList = new List('directory', directory.options);

}

这是一个使用 Sage starter theme 的 WordPress 网站,并且上面的 php_ajax_url 位引用了 functions.php 中的以下内容:

function assets() {
wp_enqueue_style('sage/css', Assets\asset_path('styles/main.css'), false, null);

$ajax_url = admin_url( 'admin-ajax.php' );

wp_enqueue_script('sage/js', Assets\asset_path('scripts/main.js'), ['jquery'], null, true);
wp_localize_script( 'sage/js', 'php_ajax_url', $ajax_url );
}
add_action('wp_enqueue_scripts', __NAMESPACE__ . '\\assets', 100);

我对 Ajax 的所有方面都是新手,希望获得关于下一步的指导。或者,您是否看到任何明显的错误?

最佳答案

也许这不太可能,因为我无法重现该错误,但正如我所见,当您的网站在 HTTP 上运行时,您指向 admin-ajax.php 的 URL 在 HTTPS 下。

试试这个:

$ajax_url = admin_url( 'admin-ajax.php', 'http' );

关于jQuery Ajax 在 iOS 中不工作(使用 list.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36551094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com