元素内的触发操作

时间:2013-02-19 22:11:11

标签: jquery

我写了一个小插件来获取元素并将其放入模态框中。选择元素后,它将附加到正文中,如下所示:

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

但是,我只是注意到,当单击或选择模态中的元素时,我似乎无法检测到任何动作。

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

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

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

我错过了什么?

1 个答案:

答案 0 :(得分:1)

尝试:

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

理想情况下,您希望在DOM中使用比document更接近元素的选择器,这是文档准备好时存在的选择器。根据{{​​3}}

的jQuery文档
  

事件处理程序仅绑定到当前选定的元素;他们   在您的代码调用.on()时页面上必须存在。   要确保元素存在且可以选择,请执行事件   绑定在文档就绪处理程序中的元素   页面上的HTML标记。如果将新HTML注入页面,   选择元素并在新HTML之后附加事件处理程序   放入页面。