2013-07-18 9 views
1

Для грубого примера, у меня есть таблица, когда новый элемент создан Javascript, тег не будет работать

<table> 
<tr> 
    <td>wangel</td> 
    <td>tamang</td> 
    <td><a class="edit">edit</a></td> 
</tr> 
</table> 

, когда я нажимаю редактировать, я использую функцию, используя J запрос, использовать Ajax и затем вызвать функция, делать редактирование запроса с PHP, а затем я вернуть новую строку, которая теперь отредактированного

<tr> 
    <td>wangelpakhrin </ td> 
    <td>tamang</td> 
    <td><a class="edit">edit</td> 
</tr> 

затем замените старшие один с использованием заменить с(). , проблема в том, что новое редактирование не запускает функцию i, созданную ранее в скрипте, иначе она обновляет страницу. Я использовал, используя live() или on(), но все же обновляет страницу. Какое может быть решение? это было бы очень полезно.

код сценария

$("a.edit").on("click",function(e) { 
     e.preventDefault(); 
     var id = $(this).attr("value"); 
     var parent = $(this).parent(); 
     $.post("../lib/ajax/edit-user.php",{id:id},function(data){ 

      parent.parent().replaceWith(data); 


      }); 


}); 
+0

Трудно помочь без кода JQuery – anu

+0

вам нужно делить, как пишется обработчик редактирования, но проблема не использует делегирование событий –

+0

ли у попытался добавить 'e.preventDefault();'? – anu

ответ

3

Я предполагаю, что ваша таблица является фиксированной и вы добавляете тр внутри table.Then сделать класс для табличного тэга как

<table class="my_table"> 
<tr> 
    <td>wangel</td> 
    <td>tamang</td> 
    <td><a class="edit">edit</a></td> 
</tr> 
</table> 

теперь ваш .ON как

$(".my_table").on('click',".edit",function(){ 

    //your work 
}); 

, пожалуйста, дайте мне знать статус.

+0

спасибо вам столько aritra chakarborty, что теперь работает on(). Я добавил имя класса таблицы, и редактирование отлично работает ... u сохранил мое время. –

+0

Я рад, что это вам помогло. – ABorty

0

вы можете обновить только содержание вашей вместо замены, как это:

$("a.edit").on("click",function(e) { 

var id = $(this).attr("value"); 
var parent = $(this).parent(); 
$.post("../lib/ajax/edit-user.php",{id:id},function(data){ 

    parent.parent().empty().html(data); 


    }); 
}); 

Ваши данные должны быть возвращены в виде с.

data=" <td>wangel New</td><td>tamang new</td><td><a class="edit">edit</a></td>" 
+0

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

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