很难在一个问题中总结,但这里有详细信息:如何在我选择JavaScript完成执行的方法后触发事件以触发事件?
我有一个ASP.NET MVC 3项目(其中许多实际上)。
我的标准做法是为每个视图创建一个Init()
方法,当文档准备好时触发。这就是我把我所有的UI代码,例如渲染按钮和手风琴等
我使用的伎俩来隐藏由html
标签设置为display: none
后Init()
完成未格式化的HTML元素,我可以取消隐藏一切。
这很有效,但我最初在布局页面中显示了内容,但在视图的Init代码完成运行之前会执行该操作。如果我用自己的Javascript使用部分视图,它会变得更加复杂。
我想将一个回调附加在一个地方,在我所有可能的Init()
调用完成后触发。
我试过使用自定义事件,但后来我不得不在每个Init方法结束时触发它们,这不是非常有效。
在此先感谢您的帮助。
请求的代码:
布局页面
<script>
$("html").addClass('init') // init has display: none
$(function() {
InitLayout() // Basic stuff for every page like menu, buttons, etc
$("html").removeClass('init'); // show all content
});
</script>
查看页面
<script>
$(function() {
ViewInit() // Init all custom ui elements on page: tabs, accordions, etc
});
</script>
的问题是,removeClass
将每一页的Init
火灾发生之前。我试图找到一种方法来避免在每个Init
方法的底部都有removeClass
调用。有没有某种方式来以编程方式附加回调以避免重复代码。我的主要目标是实现隐藏无格式内容,直到全部内容全部完成,因此我不必在每个视图中担心它。
发布至少一些伪代码,给出一些事件序列的想法...否则问题是有点抽象 – charlietfl 2012-03-01 19:21:09
我注意到你用jQuery标记了这个。你使用'$(document).ready()'? – bhamlin 2012-03-01 19:30:15
@charlietfl我添加了一些代码来帮助演示。 – IronicMuffin 2012-03-01 21:41:37