1

jQueryを使用してクリック時にiframeをロードする方法はありますか?iframeはクリックするまで表示できないdivに隠されているため、大多数のユーザーはiframeを表示しません。読み込み時間がiframeの影響を受けたくない。

これは私が試した数少ないことの1つで、iframeが読み込まれません。

$(function() {
var emba=1;
var embget = 1;
    $(".custemba").click(function(event) {
    event.preventDefault(event);
    if(emba == 1) {
        emba = 2;
        $('.custemb').slideDown();
        if(embget == 2) {
            $('.appendi').append('<iframe src="/player_i.php?aid=12" height="170px" width="100%" scrolling="no"  frameborder="0"></iframe>');
            embget = 2;
        }
    }
    else if(emba == 2) {
        emba = 1;
        $('.custemb').slideUp();
    }
    });
});
4

2 に答える 2

1

以下は、少しクリーンな私にとって、追加する前にオブジェクトを作成するために機能します。

HTML:

<div>
    <a href="#" class="showframe">Show iFrame</a>
</div>
<div class="framebox"></div>​

JS:

var frame_loaded = false;
$(".showframe").click(function(event) {
    event.preventDefault();
    if (frame_loaded === false) {
        var frame_element = $('<iframe>');
        frame_element.attr({
            src: "http://eatabagofdicks.com",
            height: "170px",
            width: "100%",
            scrolling: "no",
            frameborder: "0"
        });
        $(".framebox").append(frame_element);
        frame_loaded = true;
    }
    $(".framebox").slideToggle();
});​
于 2012-05-15T00:51:49.087 に答える
1

のように見えます

if(embget == 2)

する必要があります

if(embget == 1)

そして、あなたはその余分なイベントを必要としません

event.preventDefault();

簡略化したバージョンは次のとおりです。

var appendIFrame = true;
$(".custemba").click(function(event) {
    event.preventDefault();
    $('.custemb').slideToggle();
    if(appendIFrame) {
        $('.appendi').append('<iframe src="/player_i.php?aid=12" height="170px" width="100%" scrolling="no"  frameborder="0"></iframe>');
        appendIFrame = false;
    }
});
于 2012-05-15T00:06:32.470 に答える