2014-11-13 1 views
0

Я hava-страница, где пользователь может создавать несколько фреймов.Привязка к элементу динамически созданных iframes

Пользователь нажимает на ссылку, чтобы создать новый IFRAME:

родительская страница:

echo "<div id='iframes_wrapper'>"; 
$q = mysql_query("SELECT * FROM chat_iframe WHERE init_uid='$_SESSION[uid]'"); 
while ($row = mysql_fetch_assoc($q)) { 
    $target_uid = $row['target_uid']; 
    $iframeid = $row['id']; 
    echo "<iframe id='iframe_$iframeid' src='includes/chat_iframe.php?iframeid=$iframeid' class='chat_iframe' scrolling='no' frameborder='0' data-target_uid='$target_uid'></iframe>"; 
} 
echo "</div>"; 

$(document).ready(function() { 
    $("#window").delegate(".open_iframe","click", function() { 
    var target_uid = $(this).attr("data-uid"); 
    $.post("processforms/process_chat.php", { target_uid:target_uid, open_iframe_submit:0 }, function() { 
    $("#iframes_wrapper").load('chat.php?timer='+new Date().getTime() + " #iframes_wrapper", function() { 
     $("iframe").each(function() { 
      var this_iframeid = $(this).attr("id"); 
      console.log(this_iframeid); 
      $("#iframe_"+this_iframeid).contents().find("a").on('click', function(event) { alert('test'); }); 
     }); 
     return false; 
    }); 
    }); 
    }); 
    return false; 
}); 

iframe.php

echo "$target_displayname <a href='javascript:void(0);' data-iframeid='$iframeid' class='close_chat_iframe'><i class='fa fa-remove' style='float:right;'></i>"; 

Проблема у меня в том, что, когда пользователь нажимает на ссылка в iframe, ничего не происходит.

+0

метод Использовать JQuery для атрибутов данных: '$ .data()' –

+0

@SterlingArcher хорошо я буду проверять его. – DanielOlivasJr

+0

Пожалуйста, [не используйте 'mysql_ *' функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php), они больше не поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и используйте [PDO] (http://us1.php.net/pdo) или [MySQLi] (http: // us1.php.net/mysqli). Вы также захотите [Запретить SQL-инъекцию!] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –

ответ

1

Вы должны попробовать вместо $("iframe").each(function() {...});:

$("iframe", this).on('load', function() {...}); 
+0

Спасибо. Получил работу – DanielOlivasJr

Смежные вопросы