2012-02-09 2 views
0

На родительской странице моего IFRAME у меня есть событие jQuery для обнаружения щелчка на элементе внутри IFRAME. При нажатии на эту ссылку открывается диалоговое окно JQuery UI:jQuery UI Dialog и IFRAME - с обработчиком событий on 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 на родительской странице)

Теперь на самом диалоге, у меня есть ссылка на которую я хочу прикрепить «на» события обработчик:

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

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

Однако это не возвращает идентификатор ссылки, вместо этого он возвращает «диалог».

ответ

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

вы должны использовать живой метод, вам также нужно забрать вновь созданные объекты, я обновлю свой код. –