Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.05.2013, 13:10
Аспирант
Отправить личное сообщение для kapustnik Посмотреть профиль Найти все сообщения от kapustnik
 
Регистрация: 18.04.2013
Сообщений: 32

DELEGATE в Jquery !
Привет всем!
Столкнулся как и многие с проблемой что событие не работает на новый элемент в подгружаемом аяксом контенте .
В сети много устаревшего материала, в частности рекомендует использовать live() и т.п функции которые в новых версиях Jquery депрессированы

Я откопал функцию Delegate и она чудесным образом работает, более того походу рекомендуется для новых версий

Но вот почему то , таблицы через плагин tablesorter не хотяи подключатся.

Раньше вызывал так:

$(document).ready(function(){
      $("#tableid").tablesorter();
    });


На подгружаемый элемент, понятно, не работает (хотя ид тот же)
Замечу таблица одна - я просто меняю ее .

пробовал подгружать только TBODY, сделал обертку тег CONTENT
задумка была такая , подгружать не всю таблицу , а только контент ее , а сама таблица по идее остается той же и событие должно продолжать работать ? ( так или нет - опровергните )

Но к сожалению, это не работает , т.е видимо из-за аж двух вложених внутри TABLE (tbody и content) jquery начинает глючить

Короче говоря , надо как то заставить применятся таблесортеру на все последующие элементы

Что то не могу придумать как прописать делегате , ибо в том примере идет через КЛИК , а тут нужно просто что бы ВСЕГДА была включено без всяких кликов и прочего...
Ответить с цитированием
  #2 (permalink)  
Старый 18.05.2013, 13:29
Аспирант
Отправить личное сообщение для kapustnik Посмотреть профиль Найти все сообщения от kapustnik
 
Регистрация: 18.04.2013
Сообщений: 32

Щас проверил , даже вызов типа

$("body").delegate("#tableid td", "click", function() {
$("#tableid").tablesorter(); 	
});


Не работает. т.е первый раз работает, а после подгрузки - нет
Странно, но такая же конструкция , для вызова подгрузки элементов работает...
Ответить с цитированием
  #3 (permalink)  
Старый 18.05.2013, 16:29
Аспирант
Отправить личное сообщение для kapustnik Посмотреть профиль Найти все сообщения от kapustnik
 
Регистрация: 18.04.2013
Сообщений: 32

$("body").on("click", function(event){
         $("#tableid").tablesorter();
        });


Так работает
Как вместо события КЛИК поставить событие типа "ВСЕГДА"
Ответить с цитированием
  #4 (permalink)  
Старый 18.05.2013, 17:52
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Перепишите плагин под ваши нужды. Либо просто вызывайте функцию (.tablesorter), после изменения элемента.
Ответить с цитированием
  #5 (permalink)  
Старый 18.05.2013, 18:54
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

$("body").on("click", "#tableid td", function() {
$("#tableid").tablesorter();    
});
Ответить с цитированием
  #6 (permalink)  
Старый 18.05.2013, 23:36
Аспирант
Отправить личное сообщение для kapustnik Посмотреть профиль Найти все сообщения от kapustnik
 
Регистрация: 18.04.2013
Сообщений: 32

Цитата:
Либо просто вызывайте функцию (.tablesorter), после изменения элемента.
Как в ON прописать событие "изменение"
Пробую

$("body").on("change", function(event){
         $("#tableid").tablesorter();
        });


Типа изменение боди, т.е всего документа, но не работает
Ответить с цитированием
  #7 (permalink)  
Старый 18.05.2013, 23:57
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

Сообщение от kapustnik
Типа изменение боди, т.е всего документа, но не работает
Значит пробуй по другому. Главное не останавливайся.
Ответить с цитированием
  #8 (permalink)  
Старый 21.05.2013, 20:33
Аспирант
Отправить личное сообщение для kapustnik Посмотреть профиль Найти все сообщения от kapustnik
 
Регистрация: 18.04.2013
Сообщений: 32

Зачем хамить?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
хочу инвайт на хабр macdack Оффтопик 45 28.07.2013 23:18
Динамически загружаемая jQuery и jQuery-функции в одном файле 67bytes Общие вопросы Javascript 6 06.03.2013 09:01
Несколько версий JQuery UI на одной странице. Casufi jQuery 2 10.11.2012 15:24
Вопрос поддержки старых методов jQuery antonM jQuery 1 04.10.2012 00:08
jquery is not defined - странный случай tarya jQuery 2 16.07.2012 14:27