2

ページにiframeを書き込むスクリプトがあります。このiframe内のリンクをターゲットにして機能を持たせたい。問題は次のとおりです。iframeが作成された後、次のコードを使用します。

$('#iframe_pin').load(function () {
            $(this).contents().find('a.close').click(function (event) {
                event.preventDefault();
                $('.loaded').fadeOut(fade_time).remove();
            })
        })

そしてそれは動作しません。しかし、次のように、ロード関数の後にアラートを配置すると、次のようになります。

$('#iframe_pin').load(function () {alert('bla bla');
            $(this).contents().find('a.close').click(function (event) {
                event.preventDefault();
                $('.loaded').fadeOut(fade_time).remove();
            })
        })

できます!

もちろん、コードにアラートを保持することはできません:)

誰か助けてもらえますか?

4

1 に答える 1

2

コメントからあなたは次のようなものを持っています:

<div class="loaded">
    <iframe id="iframe_pin" src="abc.html" width="100%" height="100%">
</div>

だから、あなたがする必要があるのは:

$("#iframe_pin").load(function() {

    // let's get the iframe source
    var iframe = $("#iframe_pin").contents();

    iframe.find("a.close").bind("click", function() {
        $(".loaded").fadeOut('slow', function() {
            // now that the FadeOut is finished, let's remove
            $(".loaded").remove();
        });
        return false; // let's prevent to jump in the click
    });
});

自分のスペースでの実例


<iframe>オンザフライで作成する例2


例3<iframe>オンザフライで作成し、削除して再作成する

于 2011-06-07T10:50:11.010 に答える