#javascript #jqtouch #iscroll4
#javascript #jqtouch #iscroll4
Вопрос:
Я клонирую как
<li>
шаблон, так и последующий<div>
шаблон (на который<li>
ссылаются ссылки) из динамически извлекаемых данных. После создания списка я могу обновить s-scrollwrapper, используя это: $ (‘#rlist’).data(‘iscroll’).refresh(); Это здорово. Однако, когда дело доходит до шаблона, мне не повезло обновить каждый из них. Я пробовал вышеупомянутый метод, метод jQT.setPageHeight(); как onClick из ссылки<li>
, так и при<div>
создании каждого. Я даже пытался добавить новый s-scrollwrapper в уже сформированный<divs>
, ни один из которых, похоже, не работает.
function loadInfo(){
...
fillRedSection(availableArray, $('#entryTemplate'));
$('#rlist').data('iscroll').refresh();
//Tried ways to refresh scroll of the cloned divs...nothing seems to
work
}
function fillRedSection(arr, template){
//iterating through the JSON data
for (i = 0; i<arr.length; i ){
var dataLocation = arr; //Data arr
var row = dataLocation[i].id; //id# coming with JSON data
var newEntryRow = template.clone(); //cloned <li> template
from HTML
newEntryRow.removeAttr('id');
newEntryRow.removeAttr('style'); //removing hidden style
newEntryRow.attr('id', 'red-label' row); //renaming the <li>
id with the id from JSON
newEntryRow.attr('class', 'arrow'); //JQT class
newEntryRow.appendTo('#redlist ul'); //placing cloned <li>
into ul
newEntryRow.find('a').attr('href','#red-' row);//renaming href
so it will link to the cloned <div>
var newEntryDetails = $('#red-description').clone(true,
true);//cloning the div template
newEntryDetails.removeAttr('id');
newEntryDetails.removeAttr('style');//removing hidden
style
newEntryDetails.attr('id', 'reds-' row);//renaming id so
the <li> href can link to it
//1 Possible attempt at adding the scroll class as each
div is created
// Hopefully avoiding problem of cloned scrolls with the
same id name
/*var newScroll = $('.tester');
newScroll.removeAttr('id');
newScroll.attr('id', 'scroll-' row);
newScroll.attr('class', 's-scrollwrapper');*/
newEntryDetails.appendTo('#jqt'); //append cloned <div> to
the main <#jqt> div.
newEntryDetails.find('h4').text(dataLocation[i].business_name);//
filling div from JSON
...
}
}
//Attempt to refresh iScroll on the div that is being clicked on from
the <li>
//used onClick="refreshScroll()
refreshScroll {
jQT.setPageHeight();
}
Кажется, ничего не работает. Я был бы признателен за любую помощь по этому вопросу.
Ответ №1:
Спасибо за использование моего кода. Каждый идентификатор в вашей HTML-разметке должен быть уникальным, иначе ваш JavaScript не будет работать. Когда вы раскрашиваете разделы, вы также дублируете идентификатор div. Мой код динамически присваивал div с классом .s-scrollwrapper идентификатор на основе идентификатора страницы. Изменение идентификатора страницы в вашем коде должно помочь. Также включите в свой код следующее, чтобы все настроить.
init_iScroll('<new page's div>');