在我的IFRAME的父页面上,我有一个jQuery事件来检测IFRAME中元素的点击。单击此链接将打开一个jQuery UI对话框:
<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 :(得分:1)
这引用了函数的所有者,在您的情况下这是对话框。 试试这个:
$('#dialog .edit-link').live('click', function(){
alert($(this).attr("id"));
return false;
});
答案 1 :(得分:0)
问题解决了 - 这是我原始代码中的一个错误 - 应该是:
$('#dialog').on('click', '.edit-link', function(){
而不是:
$('#dialog').on('click', $('.edit-link'), function(){