Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.01.2012, 19:30
Аватар для saturn
Аспирант
Отправить личное сообщение для saturn Посмотреть профиль Найти все сообщения от saturn
 
Регистрация: 08.09.2011
Сообщений: 67

Как можно отловить id который добавил с помощью append() ?
Добрый вечер всем. Подскажите как можно отловить id который добавил с помощью append() ?
Вот к примеру есть такой код

$('#add_vote').click( function () {
        $('#div_vote').append('<div><input type="text"/><img src="rem.png" id="rem_vote"/></div>');
    });

А как можно отловить клик на id="rem_vote" ?
Ответить с цитированием
  #2 (permalink)  
Старый 16.01.2012, 19:44
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

С помощью append вы добавляете элемент, это не одно и то же что добавить айди.
Отловить клик это тоже не одно и то же, что отловить айди.
Как вариант всегда добавлять этим картинками какой то одинаковый класс и сделать так:
$('.my-class').live('click', function(){
alert(this.id)
});
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #3 (permalink)  
Старый 16.01.2012, 19:53
Аватар для saturn
Аспирант
Отправить личное сообщение для saturn Посмотреть профиль Найти все сообщения от saturn
 
Регистрация: 08.09.2011
Сообщений: 67

Nekromancer
Спасибо.
Уже правда сам догадался что к чему.
Кстати вместо live() лучше on()
Вот что в результате вышло
$('#add_vote').click( function () {
                $('#div_vote').append('<div><input type="text"/><img src="rem.png" id="rem_vote"/></div>');
                
       $('#div_vote').on( "click","#rem_vote", function() {
       $(this).parent().remove();
 
    });            
                
    });

Добавляет и удаляет текстовое поле.
Ответить с цитированием
  #4 (permalink)  
Старый 16.01.2012, 21:02
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

saturn,
ну оно то лучше и вы это наверно прочли в документации jQuery. Но можно заметить, что не все используют версию 1.7+, да и не факт, что ту, в которой хотя бы delegate есть. В общем проще написать live - кто пользуется новой, тот поймёт, что лучше использовать on. А кто не знает - ни разу не пострадает, ведь это одно и то же, в принципе.

И on кстати надо вешать ну по клику, а заранее, например так:
$('#div_vote').on( "click","#rem_vote", function() {
       $(this).parent().remove();
 
    });   
$('#add_vote').click( function () {
                $('#div_vote').append('<div><input type="text"/><img src="rem.png" id="rem_vote"/></div>');         
                
    });
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #5 (permalink)  
Старый 17.01.2012, 01:35
Аватар для saturn
Аспирант
Отправить личное сообщение для saturn Посмотреть профиль Найти все сообщения от saturn
 
Регистрация: 08.09.2011
Сообщений: 67

Nekromancer , не знал что on() нужно объявлять заранее., хм, ... буду знать).
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли в jQuery селектор вставлять перменные и как? jsuse jQuery 2 04.12.2011 01:27
как можно доотправить форму Артем125 AJAX и COMET 1 23.11.2011 21:22
Как можно активировать/деактивировать функцию Решатель Элементы интерфейса 2 31.10.2011 10:38
как с помощью jquery отсылать без перезагрузки... serhanters jQuery 11 22.07.2011 21:17
Как с помощью JS "на-лету" менять часть HTML кода greendoc Общие вопросы Javascript 2 18.03.2008 20:43