jQuery:使用.attr(' href',"")来调用javascript

时间:2015-03-03 23:52:58

标签: javascript jquery html

我有一个超链接,我试图用jQuery更改href值,以调用一个函数。以前,这曾经指向一个url,这是我之前的代码,其中myUrl是传入的字符串变量:

$('#lnkEdit').attr('href','" + myUrl + "');

我需要将其更改为调用函数。

我试图传递它,其中openDialog只是我的弹出功能:

string editUrl = "javascript:openDialog('myUrl/EditForm.aspx')"
$('#lnkEdit').attr('href','" + editUrl + "');"

但这只是导航我的功能,因为浏览器中的URL(浏览器尝试导航到函数调用文本)。

有没有办法让这项工作?

3 个答案:

答案 0 :(得分:1)

您可以使用prop方法获取示例:

string editUrl = "javascript:openDialog('myUrl/EditForm.aspx')"

$('#lnkEdit').prop('href', editUrl);

但作为一个很好的实践,使用函数提供此窗口是一个很好的方法,样本:

$('#lnkEdit').on('click', function() {
   openDialog('myUrl/EditForm.aspx');
});

答案 1 :(得分:0)

典型的方法是附加一个点击处理程序:

$('#lnkEdit').on('click', function() {
    openDialog('myUrl/EditForm.aspx');
});

或者,如果URL在HTML生成期间来自其他地方:

<a id="lnkEdit" href="#" data-href="myUrl/EditForm.aspx">test</a>

然后:

$('#lnkEdit').on('click', function(e) {
    e.preventDefault();
    openDialog($(this).data('href'));
});

答案 2 :(得分:0)

我想你想把它改成类似的东西 var editUrl = "openDialog('myUrl/EditForm.aspx')"; $('#lnkEdit').attr('href',"#"); $('#lnkEdit').attr('onclick',editUrl); 这会将对象设置为更改onclick而不是充当链接。这是一种更好的方式,我相信它更简单。