Jquery.on不';似乎无法使用AJAX

Jquery.on不';似乎无法使用AJAX,jquery,ajax,Jquery,Ajax,为什么以下方法不起作用: $(function() { $('#settings').on('click', '.link', function(e) { e.preventDefault(); alert('okay'); }); }); …只需将正文预编到选择器就可以工作了吗 $(function() { $('body #settings').on('click', '.link', function(e) {

为什么以下方法不起作用:

$(function()
{
    $('#settings').on('click', '.link', function(e)
    {
        e.preventDefault();
        alert('okay');
    });
});
…只需将
正文
预编到选择器就可以工作了吗

$(function()
{
    $('body #settings').on('click', '.link', function(e)
    {
        e.preventDefault();
        alert('okay');
    });
});
此代码由
$执行。在
#settings
通过
$('body')插入DOM之后,getScript(…)
调用。append(…)

我想使用
.on()
,因为
.link
可以动态创建,我不想到处重新绑定事件

受影响的浏览器:Firefox、Chrome,可能更多
JQuery版本:1.11.0


在这种情况下,您可能有多个元素具有相同的ID,因此会出现奇怪的行为。

修复了右括号。JSFIDLE是一个问题,因为它需要进行所提到的$.getScript调用,我认为这是复制该案例所必需的。您能发布更多的代码吗?是否您正在使用AJAX并且
$('body').append(…)
比您预期的要晚?我将尽快提供更多代码;基本思想是,
$.getScript()
调用发生在AJAX成功处理程序中,就在从AJAX调用中附加内容之后。如果执行
console.log($('#设置')),会得到什么
就在
getScript
之前?我必须问一下,您只有一个
#设置,对吗?(当你回答时,我可以删除此评论,使其不受争议)再次感谢;从现在起必须少用身份证。很乐意帮忙!嗯,有时候它们很方便。您还可以使用数据属性,它们也很方便。干杯