программы! Я нашел решения для подобных проблем, таких как мои здесь, на сайте, но то, что происходит со мной, довольно необычно, и я не думаю, что они применяются.Как отменить выполнение javascript после события click?
На этой странице: http://tdg.gswitchhost.com/calendar/
Я заперта в использовании этого плагина, который я действительно не заботиться. Это сайт Wordpress, но плагин, в котором перечислены предстоящие события, не ведет себя как Wordpress. У этого есть эта система, которая полностью уникальна для него. Сообщения живут вне таблицы базы данных сообщений, и вы должны запрашивать их совершенно по-другому. Это облом. Итак, моя проблема:
У нас есть jquery, работающий с магией в списке событий, чтобы добавить эффект аккордеона, и это работает. Однако. Когда вы нажимаете на ссылки для разбивки на страницы, чтобы загрузить следующий набор событий, плагин вместо ссылки на страницу 2 событий выполняет асинхронный запрос и загружает следующий набор событий на существующую страницу без перезагрузки страницы. Если вы нажмете на одно из новых событий, аккордеон больше не работает.
Что я думаю происходит, что по щелчку, плагин удаляет всю UL, который содержит события и загружает второй совершенно новый, содержащий второй набор записей, с тем же именем класса, но с JavaScript инициализируется на первом UL, тот, который был удален плагин, новый набор не был затронут, так как страница не перезагрузилась и снова запустила javascript.
Я попытался использовать .on() и плагин Livequery для повторного запуска javascript при нажатии ссылок на страницы, но при запуске запроса и загрузке нового UL есть задержка, поэтому я считаю, что javascript снова запускается, когда вы нажимаете на ссылку, но поскольку UL не был загружен уже, когда вы нажимаете, для jquery нечего работать.
Извините, что так долго, но я просто хочу быть как можно более ясным. Я ошибаюсь? Это убивает меня, у меня заканчивается время, и мне действительно нужно заставить это работать, чтобы независимо от того, какой набор событий был загружен на странице, на нем работает функция аккордеона.
Вот Javascript, который инициализирует гармошку:
$('.eventListingNew').accordion({
headerClassName: 'accordionHeader',
headerActiveClassName: 'accordionHeader-active',
contentClassName: 'accordionContent',
collapseAll: false,
speed: 250
});
А вот Pastebin целой функции аккордеона, так как это так долго. http://pastebin.com/BvDseg3g
Can Kinda сказать, что вы немного расстроены! Правильно, подведите итог в предложении, что вы хотите, чтобы мы работали? Вы хотите отложить выполнение в течение определенного времени. Вот что подразумевает название вопроса. – christopher
Извините, что это было так много времени, и если это неясно, задержка на выполнение - это переменная, поэтому я не могу жестко установить задержку, например .delay (300). Я ДУМАЮ, что я ищу, это способ для javascript обнаруживать, когда загружается новый UL, и THEN запускают функцию аккордеона. Можете ли вы это сделать? –
ответ epascarello имеет больше смысла :) – christopher