1

在我的 Wordpress 中,我将自定义附件大小设置为 128x79 和 896x277。我的图像肯定会大于 128x79。如果图像小于 896x277,它会裁剪掉大于最大尺寸的图像,并将另一个设置为最大尺寸。这意味着 500x300 的图像将被裁剪为 500x277。

假设在我的页面上我有一个带有 href 的图像,如果它存在http://domain.com/files-128x79.jpg我想替换files-128x79.jpgfiles-896x277.jpg,否则,找到以高度为优先的最大图像。

好的...我决定简化我的问题以使其更容易。我现在要做的就是检查 files-896x277.jpg 是否存在,如果不存在,我希望它输出 files.jpg。到目前为止,我已经有了这个,但似乎无法设置锚href。

$rewrite.find('a').each(function(index, element) {
    $.ajax({
        url : $(this).children().attr('src').replace('-128x79.', '-896x277.'),
        type: 'head',
        success : function() {
                $(this).attr('href', $(this).children().attr('src').replace('-128x79.', '-896x277.'));
        },
        error : function(xhr, d, e) {
            if (xhr.status == 404) {
                $(this).attr('href', $(this).children().attr('src').replace('-128x79.', '.'));
            }
        }
    });
});

我究竟做错了什么?

4

2 回答 2

0

在 AJAX 回调里面,里面有什么this?它仍然是导致事件的因素吗?如果有,是哪个事件?AJAX 结果事件?

我建议保存this到局部变量以确保它包含您期望的内容:

$(function () {
    var that = $(this);
    $.ajax({
    url : that.children()....
于 2011-07-07T08:13:44.643 回答
0

是的,您可以执行以下操作:

var image = 'files-128x79.jpg';
$(function () {
    $.ajax({
        url : 'search_images.php',
        success : function(filelist) {
            //YOu have the filelist in a string. Just parse it to find the image
            ...
            var imageExists = (filelist.indexOf(image) >= 0); //Search the image
            if (!imageExists ) {
                alert('The image was not found');
            }
        },
    });
});

PHP:

search_images.php (linux)
echo `ls /images/files-*.jpg`; //This will list all the images in your directory

希望这可以帮助。干杯

于 2011-07-07T05:19:54.190 回答