【发布时间】:2013-09-09 18:42:33
【问题描述】:
这对你们所有人来说都是一个奇怪的问题 - 我相信这个问题与返回 false 或初始 void 有关。我有一个按钮....
<a href="javascript:void(0)" id="csv1" onclick="formexport(vars etc)">Click me<a>
然后在函数内部,我对 php 页面进行 ajax 调用,该页面根据传递给它的变量生成 Excel 文件,然后在完成时删除 onclick 属性并将 href 属性替换为指向新创建文件的链接然后再次单击该按钮。比如……
function formexport(what, formname, tabid, start, finish, folder){
$filename = ("/clients/" + folder + "/" + $formname + "-" + finish + ".csv");
$.ajax({
url: "formexport.php?rand=" + new Date().valueOf(),
type: "POST",
data: { start: start, finish: finish, tab: tabid, form: formname, filename: $filename }
}).done(function(data){
$('#' + what).attr('href', data).removeAttr('onclick');
setTimeout(function() { $('#' + what).click(); }, 20);
});
return false;
}
“什么”只是按钮的 id,以便它可以再次成为目标。除了第二个按钮点击之外,这一切都有效。如果我将鼠标悬停在按钮上,则 href 确实已更改为文件链接,但它从未第二次自动单击。 是初始函数的返回 false 还是 javascript:void(0),我不确定?非常感谢任何帮助。我在 Stack 上的其他地方读到过,人们将文件加载到框架中以及各种使文件链接正常工作的事情,但这让我觉得更合乎逻辑和更清晰。
【问题讨论】:
标签: jquery return settimeout