pjax;注入内容中的某些脚本在页面刷新时不起作用

时间:2014-12-17 20:49:13

标签: javascript jquery nancy pjax f5

我已根据这篇文章使用NancyFx和pjax构建了一个应用程序:

http://www.jhovgaard.com/nancy-pjax/

我的基础知识运作良好。当我点击链接时,我的内容被加载,并且该内容中的ajax表单正常工作。

但是,当我按F5并刷新页面时,某些javascript无法运行。

例如,表单包含一个div,在提交表单后显示该div以显示成功/错误消息。使用以下代码加载表单时,将隐藏此面板:

$('#successPanel').hide();

如果我点击链接并且pjax加载内容,则隐藏成功面板。 问题是,当我点击F5并强制页面刷新时,此代码不起作用。 js位于由pjax注入的内容中的文件中,如下所示:

<script type="text/javascript" src="/Content/js/formIncomeExpenses.js"></script>

我在该文件中有一个console.log,并在刷新页面时调用它。但是successPanel仍然可见。

我的布局包含jquery和pjax脚本以及我在这里使用的表单插件:

http://jquery.malsup.com/form/

我也在使用Bootstrap和Datatables.net。所有这些工作很好,应用程序的非pjax版本工作正常。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:0)

很明显,事实证明这只是DOM没有准备好的情况,使用这个解决了问题:

$(document).ready(function() { // hide the success panel $('#successPanel').hide(); });