2

現在、コントローラーからビューにオブジェクトのリストを渡し、オブジェクトの名前でラベルを生成しています。

私がやろうとしているのは、クリックされた後に各ラベルの関数を動的に作成する (相対ラベル ID でフォームを切り替える) jQuery 関数を生成することです。

jQuery 関数が機能していません。正しい jQuery 関数を Web ページに出力できませんでした...... ヒントを教えてください。

<table>
    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.Label(item.productName, new { @id = item.productId})
            </td>
        </tr>    
    }
</table>


<script type="text/javascript">
    $(document).ready(function () {
        @foreach (var item in Model)
    {
        $(@item.productId).click)(function({
            //do something
       }));
    }

    });
</script>

どうもありがとう!

4

1 に答える 1

2

まず、JS 構文が間違っています。あなたがしたいことは、これらすべてのラベルにクラス名 ( などproduct_lbl) またはデータ属性 (セマンティックなクラス名が気に入らない場合)などを与えることですproduct-lbl。これにより、クリック イベント ハンドラーを追加するために 2 回目のループを実行する必要がなくなります。次のように、1 つだけ必要です。

$('.product_lbl').on(
    'click', 
    function() { /* Do something for whichever label was clicked */ }
);

また

$('[product-lbl]').on(
    'click', 
    function() { /* Do something for whichever label was clicked */ }
);
于 2013-07-22T02:09:30.230 に答える