0

1 つのページで複数回使用される asp.net razor 部分ビューがあります。その部分ビューでは、部分ビューのコンテンツに対して jQuery を実行したい $(document).ready() に javascript があります。

<div class="someclass">
</div>
<script>
    $(document).ready(function() {
        $('.someclass').dosomething();
    ));
</script>

したがって、問題は、この部分ビューが 1 ページで複数回使用されると、 $('.someclass') が多くの要素を返すことです。$('.someclass') が意図した要素のみを返すようにするにはどうすればよいですか?

私が見る唯一の解決策は、要素の一意の ID を生成し、それを jQuery セレクターで使用することです。しかし、そのためにIDを生成するのは好きではありません。

解決のための他のアイデアはありますか?

4

2 に答える 2

0

原則として、部分ビューにスクリプトを含めるべきではありません。部分ビューが複数回使用/ロードされると、予期しない動作が発生します。また、インライン スクリプトは、ブラウザによってキャッシュされることを回避します。怠惰に感じることがありますが、スクリプトをビューから分離するのが常にベスト プラクティスです。

于 2012-11-01T03:13:08.050 に答える
0

簡単な修正は、そのクラスを init にのみ使用し、初期化後に次のように削除することです。

<div class="someclass initSomething">
</div>
<script>
    $(document).ready(function() {
        $('.initSomething').dosomething().removeClass('initSomething');
    ));
</script>
于 2012-10-31T11:14:14.653 に答える