1

ajax を介してコンテンツをロードし、要素をスライドして開く Fx.Slide インスタンスがあります。スライドして開く前に、AJAX呼び出しが返される(そしてそのターゲット要素のコンテンツを入力する)のを正しく待機しますが、画像データではなくURLのみを転送しているため、 Fx.Slide インスタンスが切り替えられます。

したがって、要素が測定されるとき、画像のサイズは考慮されず、十分にスライドして開きません。

A.delay()は機能しますが、ハックっぽい回避策です。

関連する jsFiddle


解決

lorenzo-s のおかげで、次のソリューションは見事に機能します。

var container = document.id('something');
new Request({
    url: '/path/to/listener',
    onSuccess: function(imageUrl) {
        Asset.image(imgSrc, {
            title: 'Something',
            onLoad: function() {
                // .. trigger the Fx.Slide instance here
            }
        }).inject(container);
    }
});
4

1 に答える 1

2

Asset.image()Mootools More のメソッドを使用する必要があります。

このメソッドは画像をプリロードし、img 要素を返します。onLoad画像が「準備完了」になると呼び出されるプロパティ (2 番目の引数オブ​​ジェクト) を使用できます。

Asset.image('http://url.to/your/image.jpg', {
    onLoad: function() {
        alert('Image ready.');
    }
});

更新された例: http://jsfiddle.net/6Lpeu/3/

于 2012-06-14T19:06:11.220 に答える