如何让js知道新创建的html元素

时间:2013-04-01 03:56:13

标签: javascript jquery html

我正在用js创建新的html元素。

$('#write_comment').on('click',function(){
  $(this).html('<textarea> </textarea><button onclick="test()">save</button>');
});

function test(){
 alert('testme');
}

但是在创建了这些textareabutton之后,如果我点击save,则不会发生任何事情。

我可以说有任何jquery函数吗? (newly_created_element).find(js_function)

那个或具有相同功能的东西会很高兴。

请帮忙。

3 个答案:

答案 0 :(得分:3)

$('#write_comment').on('click',function(){
  $(this).html('<textarea> </textarea><button id="test">save</button>');
});

$('body').delegate('#test','click',function(){
 alert('testme');
});

使用课程

$('#write_comment').on('click',function(){
      $(this).html('<textarea> </textarea><button class="test">save</button>');
    });

    $('body').delegate('.test','click',function(){
     alert('testme');
    });

答案 1 :(得分:3)

单独创建按钮:

$('#write_comment').on('click',function(){
  var myButton = $('<button>save</button>').click(function() {
    test();
  });
  $(this).html('<textarea></textarea>').append(myButton);
});

答案 2 :(得分:2)

$('#write_comment').on('click',function(){
  $(this).html('<textarea> </textarea><button class="NewlyAdded">save</button>');
});

$(document).on在许多方面表现得像.live()delegate()。并且将适用于稍后添加的元素

$(document).on('click','#write_comment button.newlyAdded',function()
{
  alert('testme');
});