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

はい、次のようなことができます。

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 に答える
0

AJAXコールバックの内部には、何が含まれていthisますか?それはまだイベントを引き起こした要素ですか?もしそうなら、どのイベントですか?AJAX結果イベント?

ローカル変数に保存thisして、期待するものが含まれていることを確認することをお勧めします。

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