2012-04-21 12 views
0

以下の機能がアセットパイプラインフォルダのjavascriptファイルにあります。このファイルは、他のすべてのライブラリの下にあるapplication.jsファイルの要件でローディング順に設定しています。ファイルがブラウザに正しく読み込まれます。Javascriptの機能がレールで選択されていません3.2

何らかの理由で動作していないため、現在はerbファイルに追加していますが正しく動作しますが、アセットパイプラインでどのように使用するかを知りたいと思います。

私はそれを間違って宣言していますか?

$(function(){ 

     var $container = $('#container'); 

     $container.isotope({ 
     itemSelector: '.element' 
     }); 

    }); 

この

がビューである:

あなたが何をする必要があるか、その後のコメントに基づき、
<div id="container" class="super-list width2 height2 clearfix"> 

    <% @feature.issues.each do |issue| %> 
    <div class="element metalloid isotope-item " data-symbol="Mg" data-category="alkaline-earth"> 
    <p class="number"> <%= issue.id %> </p> 
    <h2 class="symbol"> <%= link_to issue.title, [@feature, issue] %> </h2> 

    </div> 
    <% end %> 

</div> 
+1

を、私たちはより良い説明が必要だと思います。コンパイルされたapplication.jsファイルには表示されませんか?それはエラーを投げているのですか?あるいは、コードが実行されていて、あなたがそれを望むように起こっていることです。 – agmcleod

+0

後者は何も起こっていませんが、jsファイルはロードされていますが、何も起こっていませんが、erbファイルに配置すると、teeに正しく動作するかどうか、あるいはjquery() ? – user901790

答えて

3

がちょうど$(function() {})ブロック内でこのコードを置くのではなく、あなたがイベント内でそれを配置する必要があります負荷を引き起こしているものをブロックします。 pjaxのドキュメントを見ると、かなり明確な答えがあると思います。

https://github.com/defunkt/jquery-pjax

それは述べて:「pjaxあなたがpjax:startpjax:endにあなたのREPONSE本体をロードするためにそれを求めてきましたコンテナの2つのイベントが発生します。」。

だから私はあなたが終了イベントとdivをバインドし、あなたの関数を渡す場合、それは動作するはずだと思います。そうでない場合は、ビューコードを投稿することができます。

編集

は、私はあなたが近くにいると思います。追加したコードに基づいて、onフラグは、エレメントにバインドされたpjaxを持つ場所にアタッチする必要があります。あなたが投稿最初の行があったことを考える:私はあなたが試すことができます考えている

$('a.pjax').pjax() 

$('a.pjax').pjax().on('pjax:end', function(){ 
    var $container = $('#container'); 
    $container.isotope({ itemSelector: '.element' }); 
}); 
+0

$( 'a.pjax')pjax() $(文書) .on( 'pjax:スタート'、関数(){ 変数$コンテナ= $( '#コンテナ'); $容器。 .isotope({ itemSelector: '.element' }); }); }); .on( 'pjax:末端'、関数(){ 変数$コンテナ= $( '#コンテナ'); $のcontainer.isotope({ itemSelector '.element' }); } ); }); – user901790

+0

これは上記のjsであり、それはピックアップしていません。 – user901790

+0

ビューを上に追加しました – user901790

関連する問題