Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript pjax;注入内容中的某些脚本在页面刷新时不起作用_Javascript_Jquery_Nancy_Pjax_F5 - Fatal编程技术网

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

Javascript pjax;注入内容中的某些脚本在页面刷新时不起作用,javascript,jquery,nancy,pjax,f5,Javascript,Jquery,Nancy,Pjax,F5,基于这篇文章,我用NancyFx和pjax构建了一个应用程序: 我的基本功很好。当我点击链接时,我的内容被加载,内容中的ajax表单工作正常 但是,当我按下F5并刷新页面时,一些javascript不会运行 例如,表单包含一个div,该div在提交表单后显示,以显示成功/错误消息。当表单加载此代码时,此面板将隐藏: $'successPanel'。隐藏 如果我单击一个链接,pjax加载内容,那么成功面板将隐藏。 问题是,当我按F5并强制刷新页面时,此代码不起作用。js位于pjax注入的内容中包含

基于这篇文章,我用NancyFx和pjax构建了一个应用程序:

我的基本功很好。当我点击链接时,我的内容被加载,内容中的ajax表单工作正常

但是,当我按下F5并刷新页面时,一些javascript不会运行

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

$'successPanel'。隐藏

如果我单击一个链接,pjax加载内容,那么成功面板将隐藏。 问题是,当我按F5并强制刷新页面时,此代码不起作用。js位于pjax注入的内容中包含的文件中,如下所示:

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

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

我也在使用Bootstrap和Datatables.net。所有这些都可以很好地协同工作,非pjax版本的应用程序也可以很好地工作


你知道我做错了什么吗?

很显然,这只是DOM没有准备好的一个例子,使用它解决了这个问题:

$document.readyfunction{ //隐藏成功面板 $'successPanel'。隐藏; };

使用$document.ready是不可靠的,因为它只有在直接加载页面而不是通过pjax导航时才会被触发。