2016-06-30 1 views
0

ситуации

Я использую самозагрузки для отображения таблицы на основе значений в массиве объектов. У меня есть select, у которого есть метод jQuery on ('change'), при котором, когда выбран элемент из списка, создается новая таблица на основе выбранного значения.JQuery на «кнопку» не вызывая после изменения в загрузочный стол

В таблице используется обкатка начальной загрузки, чтобы отобразить/скрыть строки из таблицы при нажатии на верхнюю строку. последний элемент в строке имеет glyphicon стрелку, которая показывает ряд можно сложить/разворачивались как изображение ниже показывает

collapse with glyphicon

Я использую ниже JQuery для переключения на значке

$('#tog').on('click', function() { 
    console.log("tog clicked"); 
    $(this).find('span').toggleClass('glyphicon-arrow-up glyphicon-arrow-down'); 
}); 

до сих пор я все это работает, как показано с этой скрипкой http://jsfiddle.net/vgfb74u0/

проблема

вопрос Я офисны ng - то, что когда новая таблица визуализируется на основе выбранного элемента, jQuery, который изменяет глиф, не запускается, поэтому, когда таблица разворачивается, значок остается тем же.

Я положил в какой-то console.log в начале метода, и я никогда не видел его стрельбы. поэтому для моих новичков глаза событие клика никогда не срабатывает.

Я удивлен, что мне удалось получить это далеко и в недоумении, что может быть проблемой, поэтому любая помощь, указатели или рекомендации приветствуются!

ответ

4

Вам необходимо вручную привязать события к любому динамически созданному элементу или позволить jQuery сделать это за вас.

Изменение

$('#tog').on('click', function() {}); 

Для

$('html').on('click', '#tog', function() {}); 

Скажет JavaScript делегировать событие любых #tog, который создается внутри <html> элемента.

+0

спасибо! работает отлично! – JinJinUK

+0

Большое спасибо. Я изо всех сил пытался понять, почему это не вызвало. Это сработало отлично. – rails4sandeep

0

Проблема заключается в том, что обработчик события теряется при повторной визуализации таблицы. Исправление присоединить обработчик по-другому: $('.table').on('click', '#tog', function() {...}

See the updated jsfiddle

+0

блестящий! спасибо, что сработало удовольствие! – JinJinUK

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

  • Нет связанных вопросов^_^