Javascript 单击事件不';尝试向<;动态添加元素时无法工作;ul>;标签

Javascript 单击事件不';尝试向<;动态添加元素时无法工作;ul>;标签,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试创建一个列表,在您单击该列表后,会向其中添加新的li标记,但在您单击li标记后不会发生任何事情。 当我尝试这样做时: $('ul').click(function(){ $("ul").append('<li>aaaaaaaaaaa</li>'); }).children().click(function(e) { return false; }); $('ul')。单击(函数(){ $(“ul”)。追加(“aaaaaa

我正在尝试创建一个列表,在您单击该列表后,会向其中添加新的li标记,但在您单击li标记后不会发生任何事情。 当我尝试这样做时:

$('ul').click(function(){

    $("ul").append('<li>aaaaaaaaaaa</li>');
    }).children().click(function(e) {
       return false;
    });
$('ul')。单击(函数(){
$(“ul”)。追加(“
  • aaaaaaaaaaaaaaaaa
  • ”); }).children()。单击(函数(e){ 返回false; });
    一切似乎都很好。当我点击列表主体时,新元素被添加,当我点击之前声明的li标签时,什么都不会发生。但在单击新添加到列表中的元素后,另一个新元素正在添加。
    为什么会这样?我能做些什么

    您的代码仅应用
    。单击(函数(e){return false;})处理程序

    jQuery支持动态事件绑定方法,该方法将自动将处理程序绑定到新节点:

    $('ul')
    .on('click', function(e) {
       $(this).append('<li>aaaaaaaaaaa</li>');
    })
    .on('click', 'li', function(e) {
       return false;
    });
    
    ul{
    边框:1px纯红;
    }
    李{
    边框:1px纯黑;
    }
    
    
    • A
    • B
    • C

    您的代码仅应用
    。单击(函数(e){return false;})处理程序

    jQuery支持动态事件绑定方法,该方法将自动将处理程序绑定到新节点:

    $('ul')
    .on('click', function(e) {
       $(this).append('<li>aaaaaaaaaaa</li>');
    })
    .on('click', 'li', function(e) {
       return false;
    });
    
    ul{
    边框:1px纯红;
    }
    李{
    边框:1px纯黑;
    }
    
    
    • A
    • B
    • C

    虽然Brendan的答案是正确的,但我建议去掉第二个函数,改用以下方法:

    $('ul')
    .on('click',函数(e){
    如果(例如,目标===此){
    $(this.append(“
  • aaaaaaaaaaaaaaaaaaaaa
  • ”); } })
    ul{
    边框:1px纯红;
    }
    李{
    边框:1px纯黑;
    }
    
    
    • A
    • B
    • C

    虽然Brendan的答案是正确的,但我建议去掉第二个函数,改用以下方法:

    $('ul')
    .on('click',函数(e){
    如果(例如,目标===此){
    $(this.append(“
  • aaaaaaaaaaaaaaaaaaaaa
  • ”); } })
    ul{
    边框:1px纯红;
    }
    李{
    边框:1px纯黑;
    }
    
    
    • A
    • B
    • C
    $('ul')
    .on('click',函数(e){
    $(this.append(“
  • aaaaaaaaaaaaaaaaaaaaa
  • ”); }) .on('click','li',函数(e){ 警惕(); });
    ul{
    边框:1px纯红;
    }
    李{
    边框:1px纯黑;
    }
    
    
    • A
    • B
    • C
    $('ul')
    .on('click',函数(e){
    $(this.append(“
  • aaaaaaaaaaaaaaaaaaaaa
  • ”); }) .on('click','li',函数(e){ 警惕(); });
    ul{
    边框:1px纯红;
    }
    李{
    边框:1px纯黑;
    }
    
    
    • A
    • B
    • C

    您正在取消对li的单击。。。您是否希望在单击li时发生什么?为什么还要将事件处理程序绑定到li?因为在单击li后,如果没有它,则会创建新的li。我不想那样。我只想在点击ul的身体后创建li的你取消了对li的点击。。。您是否希望在单击li时发生什么?为什么还要将事件处理程序绑定到li?因为在单击li后,如果没有它,则会创建新的li。我不想那样。我只想在点击ul的主体后创建li,当我使用代码时,如果我点击列表后没有任何事情发生,没有添加新的元素,我已经做了一个演示,证明它确实有效。单击项目符号区域,它将创建一个新的
    li
    。好的,它确实有效,我刚刚使用了jQuery:P的1.6版本。谢谢!当我使用你提供的代码时,在我点击列表后什么也没有发生,没有新的元素被添加,我已经做了一个演示,证明它确实有效。单击项目符号区域,它将创建一个新的
    li
    。好的,它确实有效,我刚刚使用了jQuery:P的1.6版本。谢谢!