2012-08-09 3 views
1

tumblr의 json 파일을 구문 분석하여 dom 요소를 만듭니다.
이미지가로드 된 후 jQuery plugin Masonry을 적용하여 이미지 그리드를 강화하고 싶습니다.

Heres 내 시도가 있지만 응답하지 않는 것 같습니다
도움을 주시면 감사하겠습니다.동적 DOM 벽돌 jQuery 플러그인

var container = $('#output'); 
$.getJSON("http://mydomain.tumblr.com/api/read/json?callback=?", function(data) { 
    $.each(data["posts"], function(i){ 
     var img = data["posts"][i]["photo-url-400"]; 
     container.append('<div class="box"><a href="temp.php?var='+i+'"><img src="'+img+'" alt="" /></a></div>'); 
    }); 
}); 


//container.live('imagesLoaded', function(){ 
container.imagesLoaded(function(){ 
    container.masonry({ 
     itemSelector: '.box', 
     columnWidth : 400 
    }); 
}); 

또는이

var container = $('#output'); 
$.getJSON("http://mydomain.tumblr.com/api/read/json?callback=?", function(data) { 
     $.each(data["posts"], function(i){ 
       var img = data["posts"][i]["photo-url-400"]; 
       container.append('<div class="box"><a href="temp.php?var='+i+'"><img src="'+img+'" alt="" /></a></div>', function(){ 
        container.imagesLoaded(function(){ 
         container.masonry({ 
           itemSelector: '.box', 
           columnWidth : 400 
         }); 
       }); 
     }); 
}); 
+0

json 형식을보아야 할 때가 있습니다. 문제가 없다면 말입니다. –

+0

jSon은 파싱을 잘 수행하여 DOM에 출력합니다. 그 벽돌 부분은 응답이 없습니다 –

+0

이것은 많은 도움이되었습니다. http://stackoverflow.com/questions/3526077/how-to-bind-a-dynamic-div-to-jquery-masonry-plugin –

답변

0
// Nothing changed here: 
var container = $('#output'); 
$.getJSON("http://mydomain.tumblr.com/api/read/json?callback=?", function(data) { 
    $.each(data["posts"], function(i){ 
     var img = data["posts"][i]["photo-url-400"]; 
     container.append('<div class="box"><a href="temp.php?var='+i+'"><img src="'+img+'" alt="" /></a></div>'); 
    }); 
}); 

// Now, do this: 
container.masonry({ 
    itemSelector: '.box', 
    columnWidth : 400 
}); 
var masonryUpdate = function() { 
    setTimeout(function() { 
     container.masonry(); 
    }, 500); 
} 
$(document).on('click', masonryUpdate); 
$(document).ajaxComplete(masonryUpdate); 

다시 그것에 대해 걱정하지 마십시오!

+0

우리가 구체적으로 * 묻는 질문에 답할 것을 기대한다는 것을 명심하십시오. 질문에 코드가있는 경우 대답은 해당 코드 자체를 처리해야합니다. –