Запуск функции при загрузке дополнительных заметок в Tumblr

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

Это скрипт, который запускается tumblr при загрузке дополнительных заметок (это событие onclick):

if (window.ActiveXObject) var tumblrReq=new ActiveXObject('Microsoft.XMLHTTP'); 
else        
if(window.XMLHttpRequest)    var tumblrReq=new XMLHttpRequest();        
else  return false;         
tumblrReq.onreadystatechange = function () {
if (tumblrReq.readyState==4) {      
    var notes_html = tumblrReq.responseText.split('<!-- START '+'NOTES -->')[1].split('<!-- END '+'NOTES -->')[0];
if (window.tumblrNotesLoaded)
    if (tumblrNotesLoaded(notes_html)==false)
        return;         
var more_notes_link=document.getElementById('more_notes_20767443750');
var notes = more_notes_link.parentNode;
notes.removeChild(more_notes_link);
notes.innerHTML+=notes_html;
if (window.tumblrNotesInserted)
    tumblrNotesInserted(notes_html);    
}
};

tumblrReq.open('GET','/notes/20767443750/iRC0TZaQr?from_c=1334227072',true);
tumblrReq.send();
return false;

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

Эта ссылка здесь — одна из страниц с постоянными ссылками из блога, который я работает над, где вы можете увидеть, о чем я говорю. Здесь приведены справочные материалы из документации tumblr.

Буду признателен за любые мысли, поскольку они могут привести меня в правильном направлении!


person bjnvnen    schedule 13.04.2012    source источник


Ответы (1)


Что ж, оказалось, что я сам был в правильном направлении и только что сделал код, который тоже должен был работать беспорядочно, но теперь он работает, поэтому я подробно расскажу, как это сделать, чтобы другие люди могли использовать информацию:

function tumblrNotesLoaded(notes_html){  //this will be called when loading notes

     //code goes here!

};

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

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

var newtmbnotes =  $("li.note:not(.isotope-item)");

Это выбирает все элементы заметки, которые не были позиционированы Isotope (плагин добавляет класс «isotope-item» к каждому элементу, который он обрабатывает). Это оставляет выделение только с новыми нотами.

$('ol.notes').isotope( 'appended', newtmbnotes, introNote() );

И, наконец, это, которое добавляет новые заметки, которые были определены ранее, а затем запускает функцию, называемую introNote, которую я сделал, чтобы постепенно добавлять их, как только они будут готовы.

person bjnvnen    schedule 18.04.2012