2011-01-22 8 views
0

私はWordPressのインストールでjQuery Masonryを使用していますが、Safariを除くすべてのブラウザ(WinとOSXの両方)では正常に動作します。これは、​​発射が早すぎるいくつかのjQuery/WebKitの問題に関連していますか?私はjQuery/JavaScriptにはかなり新しいので、どんな助けでも大歓迎です。jQueryとSafariが連携していません

このページでは、Safariで動作しません。http://tangomitstil.de/news/

(何らかの理由で)このページはしますが:http://tangomitstil.de/info/unterricht/

問題はアイテムの数とは関係ありません(私は同じことを経験していますかなり大きなテストポストを持つ私の開発版の問題)、@ font-faceの埋め込み、画像の使用、または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ですが、どちらも動作しません。私のコンテンツは(ウィンドウ).loadで "masonified"になります。ただし、 "left"プロパティはサファリで常に0に設定されているため、2番目の列はレンダリングされません。 –

+1

@Illyria:任意のタイミング問題を排除するだけです。コールを1秒間遅らせるには '$(function {){set *}};});'を使います。それが助けにならないなら、* timing *は問題ではありません。 – Tomalak

関連する問題