2013-02-19 72 views
0

我写了一个小插件来获得元素,放入模式对话框。一旦元素被选中它被附加到身体是这样的:触发动作withing元素

$('body').append(overlay, modal).show(); 

不过,我只注意到我似乎无法能够检测到任何操作模式中的元素被点击或选择时。

我试过。对()和.live()无济于事。

$(document).ready(function() { 
    $('#myLink').click(function() { 
     $('#myEl').myModal(); 
    }); 

    $('#myLink').on('click', function() { 
     alert('clicked me!'); 
    }); 
}); 

我错过了什么?

回答

1

尝试:

$(document).ready(function() { 
    $(document).on('click', '#myLink', function() { 
     alert('clicked me!'); 
    }); 
}); 

理想情况下,你想使用一个选择在DOM更接近元素比document,一个是现在时的文件已准备就绪。根据jQuery的文档.on()

事件处理程序只绑定到当前选定的元素;他们 必须存在于网页上的时候您的代码调用。对()。 为了确保元件存在,并且可以选择,执行事件 一个文件准备处理程序内对于那些在页面上的HTML 标记元素结合。如果新的HTML被注入页面, 选择的元素和新的HTML是 放置到页面后附加的事件处理程序。