jQuery UI对话框和IFRAME - 带有'on'事件处理程序

时间:2012-02-09 16:21:26

标签: jquery

在我的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,而是返回“对话框”。

2 个答案:

答案 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(){