jquery: вставьте элемент и создайте событие для этого элемента - PullRequest
1 голос
/ 17 августа 2011

Вот вещь Предположим, у меня есть HTML со следующей структурой:

<div id="click"> add</div>
<div id="id">
<div class="item">1</div>
<div class="item">2</div>
</div>

и я создал несколько событий при нажатии на этот класс "item" с помощью jquery.

$('.class').click(function(){ alert('1');})

Проблема в том, что я хочу добавить еще один «элемент», нажав на кнопку «кликнуть», как указано ниже javascript

$('#click').click(function(){
$('#id').prepend('<div class="item">new</div>');
})

и, конечно же, я хочу, чтобы этот "элемент" также был кликабельным, но на нем нет обработчика. Конечно, я могу добавить его, вызывая $ ('. class'). click (.... еще раз, но это не так, потому что будет 2 события в div "item" 1 и "item" 2).

Может кто-нибудь предложить что-нибудь? Заранее спасибо

Ответы [ 4 ]

2 голосов
/ 17 августа 2011

Вероятно, вы могли бы решить эту проблему, используя .live ()

$('.item').live('click', 
    function(){ 
        alert($(this).text()); 
});
1 голос
/ 17 августа 2011
$('.class').unbind('click');
$('.class').click(.....)

Это приведет к отсоединению любых существующих обработчиков событий для события click для .class elements

0 голосов
/ 17 августа 2011

У вас нет класса с именем "class":

, поэтому я предполагаю, что $ ('. Class'). Click (function () {alert ('1');}) на самом деле $ ('. Item'). Click (function () {alert ('1 «);})

Учитывая это, я не совсем понимаю ваш вопрос. Вы хотите сделать следующее

При нажатии элемента с элементом класса: 1) Показать значение

При нажатии на элемент с идентификатором click: 1) Добавьте новый элемент с элементом класса, с обработчиком события, который вы уже определили.

Использование

$ ('. Item'). Live ('click', function () {alert ($ (this) .text ());});

$ ( '# нажмите') нажмите (функция () {$ ( '# идентификатор') перед именем ( 'новый');.}).

0 голосов
/ 17 августа 2011

http://api.jquery.com/live

$('.class').live('click', function(){ alert('1');})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...