0

次のようなonclickイベントがあります。

function OnVisClicked() {
    $("#overlay").animate({opacity: "toggle",width: "3000px",height: "3000px"}, 300);
    $('<iframe />', {
    name: 'myFrame',
    id:   'mytFrame',
    width: 724,
    height: 535,
    frameborder:"0",
    scrolling: "no",
    allowTransparency: "true",
    src: "the link..."
}).appendTo('.myDiv').ready(function(){
    $(".myBigDiv").show();
}); 
    $("#someOtherDiv").css("display", "none");
}

元々myBigDivはに設定されていましたdisplay:none。ボタンをクリックすると、myFrameが正常に追加されmyDivます。しかし、myBigDivそれでもdisplay:noneでした。内部にブレークポイントを追加しましたready()が、明らかにプログラムがブレークポイントに入っていませんでした。

答えと解決策を得た後の追加情報:

ページ上の他のWebパーツが原因で、私のDOMを完全にロードできないため、ready()呼び出すことはできません。

4

3 に答える 3

2

ready()関数は、ドキュメントの準備ができたときに1回だけ呼び出されます。http://api.jquery.com/ready/ onload()のような他のものを探していると思います。

function OnVisClicked() {
    $("#overlay").animate({opacity: "toggle",width: "3000px",height: "3000px"}, 300);
    $('<iframe />', {
    name: 'myFrame',
    id:   'mytFrame',
    width: 724,
    height: 535,
    frameborder:"0",
    scrolling: "no",
    allowTransparency: "true",
    src: "the link..."
}).appendTo('.myDiv');

document.getElementById("mytFrame").onload = function() {

    $(".myBigDiv").show();
}

}

于 2012-12-19T10:43:34.117 に答える
0

.ready()メソッドは、通常、属性と互換性がありません。ロードを使用する必要がある場合は、.ready()を使用しないか、jQueryの.load()メソッドを使用して、ロードイベントハンドラーをウィンドウまたは画像などのより具体的なアイテムにアタッチします。

.ready( handler )-DOMの準備ができた後に実行する関数。

ページの読み込み時にiframeを追加する場合は、以下のコードを試してください。

    $(document).ready(function() {

      $('<iframe />', {
    name: 'myFrame',
    id:   'mytFrame',
    width: 724,
    height: 535,
    frameborder:"0",
    scrolling: "no",
    allowTransparency: "true",
    src: "the link..."
}).appendTo('.myDiv');

    });

私があなたの質問を正しく理解していれば、これはあなたを助けるはずです。何か問題があれば私に知らせてください。

于 2012-12-19T10:47:08.483 に答える
0

次の3つの構文はすべて同等です。

  • $(document).ready(handler)
  • $()。ready(handler)(これはお勧めしません)
  • $(ハンドラー)

Jqueryのドキュメントにあるように。

したがって、これは使用しないでください。あなたが使用することができますdone()

.appendTo('.myDiv').done(function(){
    $(".myBigDiv").show();
于 2012-12-19T10:48:41.920 に答える