2012-02-09 12 views
0

IFRAMEの親ページに、IFRAME内の要素のクリックを検出するjQueryイベントがあります。このリンクをクリックすると、jQueryのUIのダイアログを開きます:jQuery UIダイアログとIFRAME - 'on'イベントハンドラ付き

<iframe id="my-iframe" src="page.php"> 
    <div class="edit-content"></div> 
</iframe> 

$('#my-iframe').contents().find('body').on('click', '.edit-content', function(){ 
    $('#dialog', window.parent.document).dialog(); 
}); 

(対話コンテンツは親ページに#dialogに保存されている)

今すぐダイアログ自体に、私は私が欲しいへのリンクを持っていますイベントハンドラ「on」に接続する:

<a href="#" class="edit-link" id="test-1">Test</a> 

$('#dialog').on('click', $('.edit-link'), function(){ 
    alert($(this).attr("id")); 
    return false; 
}); 

しかし、これは代わりに、それは「ダイアログ」を返す、リンクのIDが返されていません。

答えて

0

問題 - それは私の元のコードのエラーだった - それはされている必要があります。

$('#dialog').on('click', '.edit-link', function(){ 

の代わりに:

$('#dialog').on('click', $('.edit-link'), function(){ 
1

これは関数の所有者を参照しています。あなたのケースでは、これはダイアログです。 代わりにこれを試してみてください:解決

$('#dialog .edit-link').live('click', function(){ 
    alert($(this).attr("id")); 
    return false; 
}); 
+0

こんにちは、このためのおかげで、残念ながら、新しく作成された '.edit-link'要素を取り上げていません。 – GSTAR

+0

元のコードでエラーが発生しました:' $( '#dialog')。on( 'click' '.edit-link'、function(){' – GSTAR

+0

あなたはライブメソッドを使用する必要がありますそれは新しく作成されたオブジェクトをピックアップするためにも、私は自分のコードを更新します。 –

関連する問題