从appendTo内容中调用操作

时间:2011-12-23 20:48:20

标签: javascript jquery events

我有一个div元素,我附加到body元素

$('<div class="tooltip"></div>').appendTo('body');

并为其分配一些HTML

$('div.tooltip').html('<a class="closeme">close me</a>');

我希望当用户点击“关闭我”链接时,附加div将被删除 所以我做了

$('a.closeme').click(function(){
    $('div.tooltip').remove();
});

但即使我尝试了一个简单的

,我也没有得到任何回应
$('a.closeme').click(function(){
    alert('hi');
})

我没有得到任何回复。 我怀疑它的行为是这样的,因为我使用了appenTo方法。如果有人能告诉我如何从appentTo元素中调用拍卖,我将不胜感激

4 个答案:

答案 0 :(得分:3)

使用on()方法将事件附加到当前存在的元素,或将来会出现:

$('parentElementSelector').on('click','.tooltip',
    function(){
        alert('the tooltip was clicked!');
    });

在您的情况下,因为您要附加到body元素:

$('body').on('click','a.closeme',
    function(){
        $(this).closest('.tooltip').remove();
    });

参考:

答案 1 :(得分:2)

您可以通过这种方式构建它( working example )...

// create your new elements
$div = $('<div class="tooltip"></div>');
$a = $('<a class="closeme">close me</a>');

// attach the event to the created element
$a.click(function() {
    alert("hi");
});

// combine them
$div.html($a);

// add them to the page
$div.appendTo('body');

答案 2 :(得分:1)

您的代码似乎对我有用,请参阅此fiddle

您是否将其打包在$(document).ready(function() {});

构建它的最短路径可能是:

$('<div class="tooltip"><a class="closeme">close me</a></div>').appendTo('body').on('click', function() {$(this).remove()});

答案 3 :(得分:1)

你需要在关闭功能中添加一个直播事件,简单的点击功能将不起作用试试这个

  $('.closeme').live('click',function(){
     $('div.tooltip').remove();
  });