通过Jquery更改Action After Action

时间:2012-04-05 17:51:26

标签: javascript jquery events

我有一个下载链接,在用户下载后我想删除下载链接并更改文本。我能够做到这一点,但它做得如此之快,以至于用户无法下载exe文件。如果我以某种方式延迟它会是一个解决方案吗?有没有更好的方法来做我正在做的事情?

这是我的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,但这主要是针对普通用户。

3 个答案:

答案 0 :(得分:1)

这样的东西?

$('#downloadLink').click(function() {
  $(this).replaceWith('<span>Thanks for downloading...</span>');
});

如果您仍然无法解决问题,请在点击功能的顶部添加window.location = 'download.exe';

答案 1 :(得分:0)

所以 - 知道它不是一种安全的方法 - 出了什么问题:

$('a').on('click', function() {
    $(this).text('Thank You For Downloading This Software!').removeAttr('href');
});​

将选择器更改为适用的选项,而不是$('a')

答案 2 :(得分:-2)

你可能不需要函数removeLink(),因为你没有调用它。而是使用

$(document).ready(){

});

还有你的超时问题......

使用jQuery的delay()

另一件事是您正在调用#downloadLink ...不要忘记将ID添加到标记中。

编辑: 正如其他人所说,你可能只想在jQuery中完成整个函数。