jquery - 回调函数后页面意外刷新

标签 jquery callback

有人知道为什么下面的回调不执行其中的代码吗?我的主 .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/

相关文章:

objective-c - 将 Objective-C 与 C 和代码组织混合

使用类成员的 C++ 回调

javascript - 从父表中查找子表选择器 - jQuery

javascript - 使用 $ajax 对象重新运行 ajax 调用?

javascript - 使用 Soundcloud 和 wordpress iram 播放下一首歌曲

node.js - 如何在 Node.js 中处理回调?

c++ - 正则表达式替换为 c++11 中的回调?

java - 如何在 UML 类图中表示回调

jquery - 如何使用用户上传的XML文件?

jquery - Thymeleaf,将对象发送到ajax