通过jquery动作后更改链接
我有一个下载链接,并在用户下载后,我想删除链接到下载并更改文本。我能够做到这一点,但它速度很快,用户将无法下载exe文件。如果我以某种方式推迟了,那会是一个解决方案吗?有没有更好的方式来做我正在做的事情?通过jquery动作后更改链接
这里是我的JS
function removeLink(){
try{
$('#downloadLink').text("Thank You For Downloading This Software!");
$('#downloadLink').attr('href', 'javascript:void(0)');
}
catch(err){
alert(err.message);
}
}
链接
<a href="download.exe" title="Download" id="download" onclick="removeLink()">Download</a>
我也知道这是不是因为我只是使用javascript为它做的很“安全”的方式,但是这主要是仅供普通用户使用。
这样的事情?
$('#downloadLink').click(function() {
$(this).replaceWith('<span>Thanks for downloading...</span>');
});
如果你仍然有它不工作的问题,把window.location = 'download.exe';
在点击函数的顶部。
这就像一个魅力。我必须将window.location放在函数的顶部,但replaceWith()是一个我不知道的很酷的函数!谢谢! – 2012-04-05 18:23:57
那么 - 知道它不是一个安全的方法 - 这有什么错:
$('a').on('click', function() {
$(this).text('Thank You For Downloading This Software!').removeAttr('href');
});
更改选择到任何适用的替代$('a')
问题是,它没有得到下载的机会。它会改变文本和href,但exe文件不会下载我所假设的,因为JavaScript太快(?) – 2012-04-05 18:18:49
你可能不想功能removeLink()监守你是不是称它。而是使用
$(document).ready(){
});
,也为您的超时问题......
使用jQuery的delay()
另一件事是,你在呼唤#downloadLink ...不要忘记添加ID到标签。
编辑: 正如其他人说你可能只是想在jQuery中完成整个功能。
removeLink()如何被调用? – 2012-04-05 17:55:51
只要确保你的基地已经覆盖 - 如果用户点击下载,取消它,然后又想再试一次,会发生什么? – Alain 2012-04-05 18:22:40