2012-03-05 14 views
0

私の問題は、.cssが実行された後のコールバックがないので、タスクが完了した後に何かを実行するためのオプションはありますか?jQuery:.cssが実行された後、どのようにアクションを実行できますか?

私はシンプルなライトボックスを作成しています、と私は終了する中央の整列を待つ必要があります...

$("#img_lightbox").css("top", top); 

それが完了したときに、私は、全体のことをフェードインする必要がありますが、以来、私の知る限りでは、コールバックオプションはありません。時には、整列が完了する前にフェードアウトすることがあります...どうすればこれを防ぐことができますか?

ご協力いただきありがとうございます。

+1

ライトボックスcssからセンターアライメントを削除してみませんか? – Johan

+0

...?何?私はそれが中心に置かれるようにjqueryをロードした後に中心に置く必要があります(開かれているものに基づいてサイズが変わるので) – Ian

答えて

1

jQueryオブジェクトにチェーンされているものはすべて、の後にを実行します。あなたが求めていることを達成する最も簡単な方法は、Pluginsです。

jQuery.fn.myPlugin = function() { 
    //code to execute 
    return this; 
} 
$("#img_lightbox").css("top", top).myPlugin(); 

あなたが実行する必要があるために起こるかもしれないすべての機能用のプラグインを作成する必要はありませんので、あなたも、カスタム関数を実行するためのプラグインを書くことができます:

jQuery.fn.myCallback= function (callback) { 
    this.each(function() { 
     callback.call($(this)); 
    }); 
    return this; 
} 
$("#img_lightbox").css("top", top).myCallback(function() { 
    // some code to run where this = $("#img_lightbox") 
}); 

をしかし包み、私はですまだ誤解、あなたがフェード機能のためのコールバックを望むことができる。(そうでない場合は、よりを明確にしてください)

$("#img_lightbox").fadeIn('slow', function() { 
    $(this).css("top", top) 
}); 
+0

DOMの準備ができていないか、それとも何もしていません。 – gdoron

+1

これがどのように関係しているのか私は本当に理解していません。ページがロードされるのを待つ必要はありません。.cssコマンドが(クリックイベントの後で)要素をフェードインするのを待つ必要があります。 – Ian

+0

申し訳ありませんが、私は誤解しました。私は私の防衛の中で改正するつもりです...それは不明瞭で、あなたが同じことを意味していると思った2人の他の人がいました。 – Shea

-2

jQueryのを提供しますドキュメントが「準備完了」であり、コードを正しく実行する正しい状態になったら通知する方法。次のいずれかを使用します。http://api.jquery.com/ready/

+0

これは、DOMの準備ができていないか、それともこれまでに何もできません。 – gdoron

+0

私は、明瞭さのために、常に文書のバリエーションを使用しています。 (そして明快さは常により短いコードを勝ち取る)。しかし、CSSとDOMの関係は何ですか? – RvdK

+1

gdoronとPoweRoyに感謝します。私はこれを使用するように2つの反応があったので、私は狂っていると思っていました。 – Ian

1

$(document).ready(function(){ 
    //your code here 
}); 

または短く、

$(function(){ 
    //your code here 
}); 

詳しい情報CSSスタイルの追加と削除は、同期機能です - 次のステートメントので、コールバックはありませんスタイルが適用されると実行されます。 更新されたスタイルのレンダリングは若干異なります。これは次回の再描画時に発生するためですが、UIコードで深刻な数値処理が行われていない限り、その違いは完全に気付かれません。いずれにしても、「フェードイン」が起こる前に適用されます。

ディスプレイに問題がある場合は、問題が他の場所にあることをお勧めします。

関連する問題