Я пытаюсь сделать в jQuery первый комментарий из группы, которая скрыта до тех пор, пока пользователь не нажмет на кнопку, и вывести первый комментарий, чтобы он был видимым. У меня это работает, в точку. Я хочу, чтобы это происходило при загрузке страницы, поэтому у меня есть это в документе. Уже, но это не сработает. Поэтому я прикрепил его к событию mousemove, и оно работает.
Но то, что я хочу сделать сейчас, - это если есть комментарий, возьмите комментарий и покажите его, как я делал ранее. Но если нет комментария, тогда покажите слова «Без комментариев». Ниже приведен код, который я использую.
if ( jQuery('.dsq-commenter-name').length ){
jQuery(document).mousemove(function() {
jQuery('#comments p strong').text( jQuery('.dsq-commenter-name').text() );
jQuery('#comments p span.comment_excerpt').text( jQuery('.dsq-comment-text').text() );
});
}
Этот код не работает. Если я уберу оператор if, он отлично заменит текст, но если комментариев нет, он просто оставит пустое место вместо слов «Без комментариев». Если я помещаю код прямо в консоль, он работает. Поэтому я не уверен, почему он не будет работать, когда страница загружается. Я предполагаю, что это должно быть что-то с оператором if, но я пробовал все виды вещей и не могу заставить его работать.
EDIT:
Не показано в этом коде, но у меня есть все в jQuery (документ) .ready (function () {
и это, похоже, не помогает. Но комментарии обрабатываются Disqus, и поэтому я думаю, что они загружаются позже, так как я могу присоединить к ним событие?
ВТОРОЕ РЕДАКТИРОВАНИЕ:
Хорошо, я исправил это, но не уверен, что это лучший способ сделать это. Благодаря @Jacob я решил, что комментарии загружаются после того, как код уже выполнен. Поэтому я добавил к коду, используя setTimeout, и поэтому функция будет запускаться примерно через секунду после загрузки страницы, и это работает. Опять же, не уверен, если это способ сделать это или нет, поэтому, пожалуйста, поправьте меня, если я ошибаюсь или вы хотите увидеть код.