有人知道为什么下面的回调不执行其中的代码吗?我的主 .html
页面中有一个 window.onload
脚本(唯一的一个),由于某种原因,该脚本在 fadeTo
之后立即被调用>。
$("#newentryform").fadeTo("fast", .25, function () {
var newentry = prompt("Please enter a new item:", "");
if ((newentry != null) && (newentry != "")) {
var verify = confirm("Press 'OK' to confirm you wish to create a new entry:" + "\n" + newentry);
if (verify == true) {
processnewentry(newentry, dropid);
}
}
});
上述函数是从主 .HTML
页面中的 onclick
事件调用的。
编辑--评论中请求的代码
这是相关按钮和 onclick 周围的 HTML。调用的是 makenewitem 函数 这就是上面的函数。
<div id="entryinput">
<p>Item<input type="text" id="createitem" readonly /><button id="createitembutton"onClick="showbuttons(this.id)">Select...</button><button id="createnewitembutton" onClick="makenewitem(this.id)">+ New</button><button id="itemReset" onClick="resetbuttons(this.id)">Reset</button>
<input type="text" id="createitemval" style="display:none" readonly/>
<input type="text" id="createitemindex" style="display:none" readonly/>
</p>
</div>
这是processnewentry函数:
函数processnewentry(newentryvalue, dropid) {
if (dropid=="createnewitembutton")
{
dropid="createitem";
}
else
{
dropid="olditem";
}
var createnewItm=document.getElementById(dropid);
createnewItm.value=newitemvalue;
var createnewitemval=document.getElementById(dropid+"val");
createnewitemval.value="";
var createnewitemindex=document.getElementById(dropid+"index");
createnewitemindex.value="1";
$("#newitemform").fadeTo("fast", 1);
var currentPage="newitembuttonpressed";
toggleStatus(currentPage); //disable inputs and buttons in form
var hidebutton=document.getElementById(dropid+"button").style.display="none";
var subdropid=dropid.substr(6);
var hidenewbutton=document.getElementById("createnew"+subdropid+"button").style.display="none";
var displaycreateinput=document.getElementById(dropid).style.display="inline";
}
最佳答案
如果您的 onclick 位于提交按钮或 a 标记上,则可能与此有关。
您应该将 return false 添加到按钮 onclick 调用中,如下所示:
<button [...] onClick="showbuttons(this.id); return false;" />
这可以防止发生默认按钮操作(即提交)。
关于jquery - 回调函数后页面意外刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7239035/