0

Ruby on Rails、jQuery v1.8.3、jQueryUIv1.9.2を使用しています。ビューファイルでは、次のように部分的なテンプレートをレンダリングしています。

<%= render :partial => 'template_name', :locals => { :div_id => 'div_id1' } %>

関連template_nameファイルには次のものが含まれています。

<script type="text/javascript">
  var item = $('#<%= div_id %>')

  alert(item.selector) // Display #div_id1
</script>

同じページで、AJAXリクエストを介して、同じ部分テンプレートを取得してDOMに追加しますが、次のようになります:locals => { :div_id => 'div_id2' }

<script type="text/javascript">
  var item = $('#<%= div_id %>')

  alert(item.selector) // Display #div_id2
</script>

上記を行うと、AJAXリクエストの#div_id1、 sinceへの参照がにitem関連するようになり#div_id2ます。

変数の「上書き」を回避するために、その状況をどのように処理する必要がありますか?これらの変数を「分離」(名前空間または一部のjQuery機能の使用など)するにはどうすればよいですか?

4

1 に答える 1

0

コードスニペットが自己完結型の場合は、コードをプライベートスコープに移動するだけで済みます。

<script type="text/javascript">
    (function(){
        var item = $('#<%= div_id %>');
        alert(item.selector); // Display #div_id2
    })();
</script>

サーバーサイドコードでjavascriptベースのUIウィジェットを生成することに同意しませんが。

于 2012-12-05T15:13:13.637 に答える