2017-09-04 35 views
1

私はiframeの動的要素にclickイベントを追加するにはどうすればよいですか?

var iframe = document.getElementById('composer_frame'), iframedoc = iframe.contentDocument || iframe.contentWindow.document; 

iframedoc.body.innerHTML = "<a id='myAnch'>Click</a>"; 

以下のようにinnerHTMLプロパティを使用してIFRAMEにいくつかのHTML要素を追加していると私は

+0

[iframe内に動的に追加された要素にイベントを追加]可能な複製(https://stackoverflow.com/questions/19897028/add-event-to-element-dynamically-added-inside-iframe) –

答えて

0

説明をアンカー「#myAnch」をクリックすることでexicuteれるべき機能を書きたい: - ので、動的に作成された要素にiframe内のイベントを追加しようとしているため、親参照を介してバインドする必要があります。動的に追加された要素を、見つけると、それにイベントを追加しようとする親要素に基づいて意味

(jQueryの直接動的に追加された要素を認識din'tとして)

ので、下記のようにそれを実行します - 。

$("#composer_frame").contents().find('#myAnch').on("click", function (e) { 
    e.preventDefault(); 
    alert('clicked'); 
}); 

作業は、スニペット: - https://jsfiddle.net/sycf9nz6/

This is called event-delegation

+0

ありがとう@Alive toダイ、あなたは私の人生を救った;) –

+0

@GlenDavidsonはあなたを助けてうれしい:) :) –

+0

あまりにもありがとう@jeffreyrampineda :) –

1

はこれを試してみてください:

$("#composer_frame").contents().find("#myAnch").on('click',function(){ 
    //do stuff 
}); 
1

あなたはこの

$('#myAnch', iframedoc).click(function() {console.log("a");}) 

のような要素のための関数を書くことができますが、親htmlページにこのコードを置く必要があります。

関連する問題