2014-10-21 2 views
0

Мой вопрос заключается в следующем:делегат OnClick обработчик одного элемента от другого с помощью Jquery

У меня есть динамически сгенерированный элемент, который имеет OnClick = «removeMe()», функция, которая заставляет его удаляет себя.

Я использовал jQuery .on ('click', selector, handler) делегирование для привязки функции к этому элементу, чтобы выполнить определенный блок кода.

Однако элемент удаляет себя и при этом удаляет обработчик, который будет выполнять этот блок кода.

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

Я новичок в jQuery, поэтому первое решение, появившееся в моей голове, заключалось в том, чтобы каким-то образом привязать обработчик к другому элементу, который никогда не удаляется, который запускается при щелчке первого элемента. Возможно ли это?

Есть ли другие, лучшие решения, о которых я не думал? Мне что-то не хватает?

Если мои разъяснения не ясны, я могу дать разъяснения или предоставить фактическую ситуацию, в которой это происходит.

Заранее благодарен!

Редактировать: Answer by Sivapriyan, и это решение именно то, что мне нужно. Спасибо!

+0

Необходимо увидеть фактический код, пожалуйста. –

+0

Первое, что нужно сделать, это очистить 'onclick = 'removeThisRow()'' из HTML. Не пытайтесь использовать этот тип прикрепленного обработчика с помощью JavaScript/jQuery. Эти двое не делают хороших друзей. –

ответ

0

Почему бы вам просто не запустить все в своем обработчике onClick.

$("#target").click(function() { 
    $(this).remove(); 
    //Execute your block of code :) 
}); 
+1

Вы, сэр (или мадам), гораздо умнее, чем я. – user4167978

0
$(document).on("click",".selector",function(){ 
    alert("I will always live"); 
}); 

Заявка таким образом, и вы, проводник, всегда будете жить. Теперь обработчик находится на документе и нет на элементе $

+0

@ user4167978 Это всегда живое, несмотря ни на что, я всегда использую его, по крайней мере, вы вручную удаляете обработчик, не должны уходить, на самом деле, если у вас есть динамические элементы, появляющиеся в вашем приложении, вот как вы должны объявлять события для «будущих» событий. – ncubica

+0

@ user4167978 в приведенном выше примере (отмечено решение), если у вас нет элемента #target уже в DOM, обработчик не будет прикрепляться к элементу '$ (" # target ")', потому что не объявлялся, когда DOM. – ncubica

Смежные вопросы