0

デフォルトでdisplay:hiddenであるiframeをロードして表示するこのコードがあります:

   $("div").on('click', '.blok', function () { 

  $(this).siblings("iframe").toggle().show().attr("src", $(this).siblings('span').find('a').attr('href') );

    });

ご覧のとおり、2回目のクリックでデフォルト値に戻るように.toggleを配置しました。問題は、2回目のクリックでもiframeが再び読み込まれることです(非表示になっている間)。トグルイベントで1回だけロードするにはどうすればよいですか?

4

3 に答える 3

1

attr('src' ..)は、1回だけ(またはページをロードするたびに)呼び出す必要があります

トグルはそのままにしておきますが、attrを関数の外に置きます

于 2012-04-28T11:42:22.443 に答える
1

iframeを他のコンポーネントに配置して、iframe自体ではなく表示を切り替えてみませんか?このようにすると、iframeに触れることがなくなり、リロードが発生することはありません。

于 2012-04-28T11:42:43.113 に答える
1

リンク内のhrefがiframesrcと同じである場合にのみ、iframeをロードします。それ以外の場合は、切り替えます。

デモ

お役に立てれば

于 2012-04-28T11:52:22.737 に答える