2012-01-04 12 views
1

私はこれについて最善の方法を知りませんでした。MVC3でよく使われる部分的なビューのjQuery

基本的に、私はページを複数回に置かれる部分図を持っており、部分図では、ページ上で発生する可能性があり、物事のための特定のイベントに結合するのjQueryが含まれています。たとえば、ボタンのクリックなど

今、jQueryセレクタを使用すると、IDを使用してページ上のものをターゲットにします(ページ上の複数のものは同じIDを持ちます)。また、クラス名を使って物を選択することもできますが、どちらも機能しません。それぞれ部分的な視点では、互いにターゲットを絞ることができません。

私は、独自の部分図から物事を選択するために、jQueryのの各部分を必要とします。どうすればいい?

私はそれを行うための一つの方法を考えることができ、そしてそれはハックの少しです。しかし、基本的に、文字列を含むモデルを作成することができます。このモデルは、部分ビューを囲むコンテナのセレクタになります。次に、ビューではセレクタと通常のクラス名を使用します。

良い方法がありますか?

答えて

1

私は、あなたの部分的なビューのコンテンツが一意的にマークされたdiv(idでもclassでも何でも)に含まれていることを確認します。スコープをそのIDに制限します。

おそらく、var myId = Guid.NewGuid().ToString("N");を部分の先頭に定義し、部分コンテンツのコンテンツが<div id="@myId">のようにラップされていることを確認してから、セレクタで範囲を@myId

+0

私は実際にそのように考えなかった、私はモデルを通してこれを行うことを考えました、この方法は簡単でしょう。 – eyeballpaul

0

私はもっと簡単な方法があると思います! それはあなたがこの作品ですか

をなどクリックされたボタンの親またはを見つけることができます.parents()jQueryの方法についてです。

  1. あなたの部分図は、以下のような特定のidを持つdiv要素を(持っている必要があります」 PVIEW」)のような(ボタンに特定のIDを与え、部分図では他のすべての要素
  2. を含む 『btnDelete』)
  3. は次のようにスクリプトを書く:

    $(ドキュメント).ready (function(){

    $("#pView #btnDelete").click(function() { 
        var partialView = $(this).parents("#pView"); 
    
        // Now you detect what pView should be deleted! 
        // this.parents("#pView") means select the parent with id = "pView" 
        // ... 
    
    }); 
    

    });

+0

しかし、同じコントロールの2つが同じ親のすべてのビューに追加された場合、これは機能しません。 – eyeballpaul

関連する問題