일부 JSON 개체 표시에 문제가 있습니다. 객체가 $.each()
을 사용하여 표시되면 화면에 두 번 표시됩니다. 개체를 표시하려면 $.each()
을 사용하지 않으면 한 번 표시됩니다. 아래 예제는 눈금자 내용이 두 번로드되지만 텍스트 내용은 한 번만로드된다는 것을 보여줍니다.호출 후 JSON 요소가 두 번 표시됩니다.
JSON 파일은 한 번만 호출됩니다. 나는 방화범이 끌 렸던 것을 사용하여 이것을 조사했다.
임 jQuery를 1.8.0을 사용하고 플러그인 history.js를 사용
JSON 파일이 jsonlint.com를 사용하여 유효성을 검사합니다.
왜 요소가 두 번 표시되는지 알아야합니다. 어떤 도움을 주셔서 감사합니다. 감사
코드
:function JSONLoader(page)
{
//The page is "about" page then..
if(page == 'about')
{
$.getJSON('about.json', function(data, textStatus){
var htmlRuler="";
$.each(data.person, function(pageIndex, page){
//The ruler content will load in twice
if(page.RulerDiv){
htmlRuler += '<ul>';
$.each(page.RulerDiv,function(rulerIndex, ruler){
htmlRuler += '<li><img class="'+ruler.imgClass+'" src="'+ruler.imgURI+'" alt="'+ruler.imgAlt+'" title="'+ruler.imgTitle+'"/></li>';
});
htmlRuler += '</ul>';
}
$('.RulerDiv').append(htmlRuler).fadeIn('slow');
//This loads the text in once only.
if(page.TextDiv){
var htmltext = '<p class="' + page.TextDiv.textClass+'">'+ page.TextDiv.Text + '</p>';
}
$('.TextDiv').append(htmltext).fadeIn('slow');
});
});
}
}
이에 대한 몇 가지 샘플 JSON. RulerDiv 배열은 두 번 구현됩니다.
{
"person": {
"page": {
"RulerDiv": [
{
"imgURI": "../img/rulerButton.png",
"imgTitle": "",
"imgClass": "hover whoRulerDivImg",
"imgAlt" : ""
},
{
"imgURI": "../img/rulerButton2.png",
"imgTitle": "",
"imgClass": "hover RulerDivImg",
"imgAlt" : ""
}
],
"TextDiv": {
"wText" : "He is alive",
"textClass" : "fontClass"
}
}
}
}
반복 처리중인 내용을 볼 수 있도록 JSON 문자열 샘플을 게시 할 수 있습니까? 또한 1.8.2로 업그레이드 할 것을 권장합니다. 1.8.0에서 발견 된 몇 가지 버그를 수정합니다 (예 : IE9 발사. 너무 일찍). 그것은 당신의 현재 문제에 영향을 미치지 않을 가능성이 가장 높습니다. –
'htmlRuler'는 어디에 정의되어 있습니까? –
'htmlRuler'를 초기화하거나 초기화합니까? 지금 당장 보이는 방식은 각 getJSON 호출에서 항상 htmlRuler에 텍스트를 추가 한 다음 모든 것을 .RulerDiv에 추가한다는 것입니다. 다시 어디서든 .RulerDiv를 재설정하지 않아도됩니다. – Andy