2011-01-22 13 views
0

WordPress 설치시 jQuery Masonry을 사용하고 있으며 Safari를 제외한 모든 브라우저 (Win 및 OSX)에서 정상적으로 작동합니다. 이것은 .load()이 너무 일찍 발생하는 jQuery/WebKit 문제와 관련이 있습니까? jQuery/JavaScript에 익숙하지 않아 도움이 되었기 때문에jQuery 벽돌이 Safari와 작동하지 않습니다.

사파리에서 작동하지 않습니다이 페이지는 http://tangomitstil.de/news/

(어떤 이유로)이 페이지는 않지만 : http://tangomitstil.de/info/unterricht/

문제가 항목의 수 (나는 같은 발생하고있어 관련이 없습니다 오히려 많은 수의 테스트 포스트가있는 내 개발자 버전의 문제), @ font-face embedding, 이미지 사용 또는 Infinite Scroll plugin.

jQuery(window).load(function($) { 
    // We can only load masonry on window.load because of embedded swfobjects 
    jQuery('.content').masonry({ 
     singleMode: true, 
     resizable: true, 
     animate: false 
    }); // initiate masonry 
    jQuery('.content').infinitescroll({ 
     navSelector: "div.navigation", 
     // selector for the paged navigation (it will be hidden) 
     nextSelector: "div.navigation div.nav-previous a", 
     // selector for the NEXT link (to page 2) 
     itemSelector: ".content div.post", 
     // selector for all items you'll retrieve 
     loadingText: "Lädt weitere Beiträge..." 
    }, function(newElements) { 
     jQuery(this).masonry({ 
      appendedContent: jQuery(newElements) 
     }); 
    }) 
}); 

답변

2

시도는 "로드"이벤트 (이미지 로딩 등을 완료 한 경우) 이후에 발사은 "DOM 준비"이벤트를 사용하기 : 여기

는 헤더 섹션에서 호출 된 코드입니다.

jQuery에는 바로 가기가 있습니다. 대신

jQuery(window).load(function() { 
    // ... 
}); 

의 간단

jQuery(function() { 
    // ... 
}); 

을하거나 :

$(function() { 
    // ... 
}); 

를 병렬로 다른 JS 프레임 워크를 사용하지 않을 때, 그것은 대신에 $을 사용하는 것이 안전하고 편리 jQuery.

+0

빠른 답장을위한 Thx이지만 작동하지 않습니다. 내 콘텐츠는 (창).로드로 "masonified"됩니다. 그러나 "left"속성은 사파리에서 항상 0으로 설정되므로 두 번째 열은 렌더링되지 않습니다. –

+1

@Illyria : 모든 타이밍 문제를 배제하기 위해 : $ (function {) {set *}};}); 그것이 도움이되지 않는다면, * 타이밍 *은 문제가 아닙니다. – Tomalak

관련 문제