我有一个超链接,我试图用jQuery更改href值,以调用一个函数。以前,这曾经指向一个url,这是我之前的代码,其中myUrl
是传入的字符串变量:
$('#lnkEdit').attr('href','" + myUrl + "');
我需要将其更改为调用函数。
我试图传递它,其中openDialog
只是我的弹出功能:
string editUrl = "javascript:openDialog('myUrl/EditForm.aspx')"
$('#lnkEdit').attr('href','" + editUrl + "');"
但这只是导航我的功能,因为浏览器中的URL(浏览器尝试导航到函数调用文本)。
有没有办法让这项工作?
答案 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而不是充当链接。这是一种更好的方式,我相信它更简单。