0

私はRailsアプリに取り組んでおり、ポップアップフォームにjQueryとFaceboxライトボックスを使用しています。フォームでjQuery検証を使用したいと思います。これを実装しようとすると、奇妙な結果に遭遇します。

ポップアップに読み込んでいるビューにJavaScriptを直接配置すると、javsacriptは問題なく機能します。

例:app / views / item / view.html.erb

...

<script type="text/javascript">
    $(document).ready(function() {
        ...
    });
</script>

ただし、それを1ステップ抽象化して、ポップアップに使用しているレイアウトにjavascriptを配置すると、失敗します。

例:app / views / layouts / popup.html.erb

<script type="text/javascript">
    $(document).ready(function() {
        ...
    });
</script>

<div id="popup">
    <%= yield %>
</div>

また、スクリプトをビューに直接コーディングして別のjavascriptファイルにプルした場合、たとえば同じスクリプトをに入れた場合も失敗します。../public/javascripts/popup.js

それから私の見解では私はします:

<%= javascript_include_tag 'popup' %>

ここでは失敗します。

どのファイルにあるかは何の違いもないと思うでしょう。同じ方法でロードされるはずです。

なぜこれが起こっているのかについて何か考えはありますか?

4

1 に答える 1

2

あなたのdocument.readyコードでは、次のようなことをしていると思います

$(".supercool")..bind('click', function() {
  somethingAwesome();
});

そのため、ロード時に存在する supercool クラスを持つすべてのクラスにアタッチされます。あなたがやりたいことは、ライブを使用することです

$('.supercool').live('click', function() {
  // Live handler called.
});

それは単なる推測ですが、それが起こっていると思います-そうでない場合は、より多くのjavascriptを確認する必要があります。

http://api.jquery.com/live/

于 2010-11-12T21:08:15.427 に答える