我正在尝试呈现我的页面之一,并且我想显示的div顶部有一个Html.RenderAction()
调用。我想从通过我的RenderAction调用显示的页面内部,在document.ready()
中调用我的一个js初始化方法,但似乎在{之后的页面中的html之前触发document.ready()
{1}}个电话。
因此,init函数正在检查来自kendo元素的数据,该数据由于在JQuery完成之前已被调用而尚未加载,因此只能将应作为kendo输入的输入视为默认html Html.RenderAction()
元素
换句话说,是否有一种方法可以将RenderAction的加载/调用延迟到页面加载内部为止?还是我应该只使用一些难看的CSS将我需要的部分放在div的顶部?下面是我的代码的非常基本的摘要:
<input>
调用init()方法的文件
<html>
...
<div>
@Html.RenderAction("File that calls init() method")
<...rest of page that I need to load first, including kendo text boxes/>
</div>
</html>
现在我已经在其他地方实现了下面的答案,我已经意识到,当从<div>
...
</div>
<script src="...">
$(document).ready(function() {
myJs.init(params)
}
</script>
切换到document.ready
时,它打破了另一个工作原理相似的视图,但是{{ 1}}通话位于底部:
window.on('load',...)
基本上,如果剃须刀在剑道之前,@Html.RenderAction
对我有用,反之则不行-和...
<div>
<>page including kendo inputs</>
@Html.RenderAction("different file that calls same init() method")
</div>
</html>
对我有用。
更新:经过大量的尝试和错误,我最终不得不重新排列我的页面,以寻求解决方案-似乎没有简单的方法可以解决剃须刀的装载顺序CSHTML页面
答案 0 :(得分:1)
这可能有效,请尝试使用$(window).load(function()代替$(document).ready(function()
<div>
...
</div>
<script src="...">
$(window).load(function() {
myJs.init(params)
}
</script>
通过下面的链接:“在完整页面(包括所有框架,对象和图像)完全加载时执行”
jQuery - What are differences between $(document).ready and $(window).load?
答案 1 :(得分:0)
经过大量的尝试和错误,我最终不得不重新排列页面,以寻求解决方案-似乎没有简单的方法可以将剃须刀加载到CSHTML页面上。