вызывать действия из содержимого приложения - PullRequest
0 голосов
/ 24 декабря 2011

У меня есть элемент div, который я добавляю к элементу body

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

и присваиваю ему html

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

Я хочу, чтобы, когда пользователь нажимал ссылку закрыть меня,append div будет удален
, поэтому я сделал

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

, но я не получил никакого ответа, даже если я попробую простое

$('a.closeme').click(function(){
    alert('hi');
})

Я не получил никакого ответа.Я подозреваю, что это ведет себя так из-за того, что я использую метод appenTo.Буду признателен, если кто-нибудь скажет мне, как я могу вызвать аукцион из элемента appentTo

Ответы [ 4 ]

3 голосов
/ 24 декабря 2011

Используйте метод on(), чтобы прикрепить события к элементу, который присутствует в настоящее время или будет присутствовать в будущем:

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

В вашем случае, поскольку вы добавляете элемент body:

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

Справка:

2 голосов
/ 24 декабря 2011

Вы можете построить его таким образом ( рабочий пример ) ...

// 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');
1 голос
/ 24 декабря 2011

вам нужно добавить прямое событие в функцию закрытия, простая функция щелчка не будет работать попробуйте это

  $('.closeme').live('click',function(){
     $('div.tooltip').remove();
  });
1 голос
/ 24 декабря 2011

Ваш код, кажется, работает нормально для меня, посмотрите это скрипка .

Вы завернули это в $(document).ready(function() {});

Кратчайший способ построить это, вероятно, будет что-то вроде:

$('<div class="tooltip"><a class="closeme">close me</a></div>').appendTo('body').on('click', function() {$(this).remove()});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...