2013-03-19 3 views
0

У меня есть сценарий, который делает таблицу отзывчивой. Это отлично работает для моих нужд, но я использую некоторый ajax для ввода еще нескольких строк таблицы, но сценарий не влияет на эти новые строки.Удалить, затрагивая сценарий Jquery?

Я попытался возобновить сценарий после завершения моего ajax, но он не работает.

Мой вопрос: могу ли я удалить влияющий jquery, чтобы я мог повторно использовать его после загрузки данных?

Мой JQuery:

jQuery(document).ready(function ($) { 
table(); 

$('#moreevent').click(function(){ 
var last = $('#the-event tr').length; 
$.ajax({ 
    type: "POST", 
    url: "ajax.php", 
    data: { levent: last } 
}).done(function(data) { 
    $('#the-event').append(data); 
    cardbox(); 
    table(); 
}); 

return false; 
}); 

}); 

function cardbox(){ 
jQuery('.e-info-more-cont').hide(); 
jQuery('.e-info-more').mouseover(function(){ 
    jQuery(this).css({"z-index":"1001"}); 
    jQuery(this).nextAll(".e-info-more-cont").show(); 
}).mouseout(function(){ 
    jQuery(this).nextAll(".e-info-more-cont").hide(); 
    jQuery(this).css({"z-index":""}); 
}); 
} 

function table(){ 

jQuery('.footable').footable(); 
} 
+0

известная проблема: https://github.com/bradvin/FooTable/issues/32 –

+0

ах, вот и проблема. Не думаю, что ты нашел способ обойти его? – jhodgson4

ответ

1

Вы используете .click(), который устарел и не обрабатывает динамически добавленные элементы. В зависимости от версии JQuery, либо использовать .on() (рекомендуется), или .live()

Edit: Как было предложено, .click() не рекомендуется, однако по-прежнему предлагается использовать .on() везде, где это возможно.

+3

'click()', конечно, не устарел –

+0

.click() не устарел. Однако .live() is. –

+0

Из того, что я помню, было предложено избежать этого. В более новых версиях он теперь псевдоним '.on()', поскольку люди продолжали его использовать. Измененный ответ с вашими отзывами. – hexblot

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