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

jQuery: Use .attr('href',"") to call javascript

本文关键字:quot 调用 javascript href 使用 jQuery attr      更新时间:2023-09-26

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

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

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

我已经尝试过这样传递它,其中openDialog只是我的弹出功能:

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

但这只是将我导航到函数,就像浏览器中的URL一样(浏览器试图导航到函数调用文本)。

有什么办法让它发挥作用吗?

您可以使用prop方法,例如:

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

但作为一个好的实践,使用一个函数来提供这个窗口将是一个好方法,例如:

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

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

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

我想你想把它改成 var editUrl = "openDialog('myUrl/EditForm.aspx')"; $('#lnkEdit').attr('href',"#"); $('#lnkEdit').attr('onclick',editUrl); 这将对象设置为在单击时更改,而不是充当链接。这是一种稍微好一点的方法,而且我相信更简单。

相关文章: