jquery将onclick事件添加到href链接

时间:2009-08-13 10:15:45

标签: asp.net jquery asp.net-mvc

我正在从websforms转换到asp.net mvc,我有一个问题。

我有一个动态生成链接的循环,其中picNumberLink是循环中的变量,而image是可变图像链接。

我想避免将javascript操作内联,因此在我的webforms项目中执行以下操作:

hyperLink.Attributes.Add("onclick", "javascript:void(viewer.show(" + picNumberlink + "))");

在asp.net mvc中使用jquery的等价物是什么?

我见过使用$(document).ready事件附加点击的示例,但我无法弄清楚将picNumberLink变量传递到javascript函数的语法。

建议?

4 个答案:

答案 0 :(得分:7)

编辑:如果您使用此表单的ID生成链接:

<a id="piclink_1" class="picLinks">...</a>
<a id="picLink_2" class="picLinks">...</a>

$('a.picLinks').click(function() {
    //split at the '_' and take the second offset
    var picNumber = $(this).attr('id').split('_')[1]; 
    viewer.show(picNumber);
});

答案 1 :(得分:1)

var functionIWantToCall = function(){
    var wrappedLink = $(this);
    //some serious action
}

//this should be called on document ready
$("#myLinkId").click(functionIWantToCall);  

如果您需要获取图片的网址,请将其保存在anchor`s ​​href:

var functionIWantToCall = function(event){
    event.preventDefault(); //this one is important
    var link = $(this).attr('href');
    //some serious action
}

答案 2 :(得分:1)

$(document).ready(function()
{

$('#LinkID').click(function() {
    viewer.show($(this).attr('picNumber'));
});

});

您可以将名为picNumber的属性添加到您的超链接标记中,并将此设置为您的mvc视图

视图中的链接可能如下所示:

<%= Html.ActionLink("Index", new { id = "LINKID", picNumber = 1 }) %>

答案 3 :(得分:1)

假设您能够更改输出的HTML,是否无法将picNumberLink置于idclass属性中?

HTML:

<a href="..." id="piclink-242" class="view foo-242"><img src="..."/></a>

jQuery的:

$(function() {
  // using the id attribute:
  $('.view').click(function() {
    viewer.show(+/-(\d+)/.exec(this.id)[1]);
  });

  // or using the class attribute:
  $('.view').click(function() {
    viewer.show(+/(^|\s)foo-(\d+)(\s|$)/.exec(this.className)[2]);
  });
}}