使用javascript中的元素的参数类调用方法

时间:2012-11-13 12:59:40

标签: javascript jquery asp.net-mvc

这是主文件:

<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');

1 个答案:

答案 0 :(得分:1)

由于您将基本控制器路径作为公共值,因此您可以将其作为全局变量:

var controllerPath = "/MyPage/MyPageView/";

然后,您可以在添加类的同时添加click事件:

$('#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;
    });
}