0

マスターファイルは次のとおりです。

<li id="notification0">
    <a href="#" onclick="/MyPage/MyPageView"></a>
</li>
<li id="notification1">
    <a href="#" onclick="/MyPage/MyPageView"></a>
</li>
<li id="notification2">
    <a href="#" onclick="/MyPage/MyPageView"></a>
</li>

次に、javascript と jquery を使用して、テキストとクラスをリンクに追加します。そのクラスをパラメーターとして MyPageController の MyPageView 関数を呼び出したいと思います。クラスを引数として追加するには、onclick で何を変更する必要がありますか? しかし、コードの後半でクラスを取得して追加しています。

私はこれをしたい:

onclick="/MyPage/MyPageView/classForTheCorrectNotificationTag"

これは私がクラスを追加する方法です:

$('#notification0').addClass('test');
$('#notification1').addClass('water');
$('#notification2').addClass('driver');
4

1 に答える 1

1

ベースコントローラーのパスを共通の値として持っているので、それをグローバル変数として単純に持つことができます:

var controllerPath = "/MyPage/MyPageView/";

次に、クラスを追加すると同時にクリックイベントを追加できます。

$('#notification0').addClass('test').click(function(e) {
    window.location.href = controllerPath + 'test';
});

クラスをどのように追加する必要があるかに応じて、これはおそらく次のようにより動的になる可能性があります。

function SetClickable(id, path) {
    $('#' + id).addClass(path).click(function(e) {
        window.location.href = controllerPath + path;
    });
}

プライマリ コントローラ パスが一定でない場合は、データ属性を使用してそれを含めることを試みることができます。

<li id="notification0" data-controller="/MyPage/MyPageView/">
    <a href="#"></a>
</li>

function SetClickable(id, path) {
    $('#' + id).addClass(path).click(function(e) {
        var controller = $(this).data("controller");
        window.location.href = controller + action;
    });
}
于 2012-11-13T13:27:34.973 に答える