jQuery文档准备好了
jQuery document ready with Knockout.js
我刚被扔进了Umbraco ASP。. NET CMS为我的最新项目,我不确定这是如何全面,但对于我的设置Knockout.js正在做所有的模板。
我不太热衷于knockout.js,但到目前为止,它是相当直接的,除了当我开始添加一些jQuery的东西,我的问题是,在knockout已经完成填充所有元素的页面之前,jQuery正在开火。
唯一的解决方案,为我工作到目前为止是我所有的jQuery的东西都包装在setTimeout()函数,这显然是不好的。
什么是最有效的方式使jQuery和Knockout一起工作,使jQuery在Knockout完成之前不工作?
我最近与jSignature插件和我的Knockout视图有同样的问题。我需要在调用jSignature之前完全渲染KO视图,否则它不能正确地调整自己的大小。
我用一个模板绑定和一个afterRender回调函数来调用jQuery的工作。
以下是KO文档:
http://knockoutjs.com/documentation/template-binding.html下面是一个快速示例,演示如何使用它:
http://jsfiddle.net/PCbFZ/技巧在于你可以使用模板绑定的afterRender回调,而不必实际使用模板本身。相反,您将所有现有的HTML包装在一个div中,该div将调用afterRender回调:
<div data-bind="template: {afterRender: initApp}">
<!-- your existing HTML here -->
</div>
initApp是执行jQuery工作的函数。
我认为这通常应该做你需要的,但如果你的HTML特别复杂,或者你有许多视图,你需要在一个页面内呈现,你可能需要做更多的工作。让我知道你是如何进行的-也许我可以试着帮助一点多,如果这不能完全解决你的问题,因为它做了我的!
更新-遵循下面JACL的评论-这里是小提琴的扩展版本,展示了这种技术也可以与ko-if一起使用。每次您使用复选框显示/隐藏"小部件"时,都会应用不同的随机颜色来指示afterRender函数正在执行其工作。
http://jsfiddle.net/PCbFZ/15/你可以使用:$(window).load(function(){ /* code */ });
代替$(document).ready();
可能是窗口。加载而不是文档。Ready就可以了
- Jquery文档准备好了函数声明
- jquery在文档上发布准备好了
- jsbin无法识别IE中已准备好的文档
- javascript作用域和jquery's$(文档).准备好了
- 我如何选择元素后添加的类名文档准备好了
- jQuery文档中的调用函数准备好了
- jQuery文档准备好了
- 更改文档中的变量.准备好了JavaScript
- 父文档准备好了
- 是否可以将代码附加到cakephp生成的文档.准备好了
- 打开编辑器,文档准备好了
- 为什么文档.准备好了等待
- 如何附加点击事件在运行时,当我有一个数组中的所有id得到填充时,文档准备好了
- 文档.准备好了澄清
- 在jQuery中用不同的方式表示文档准备好了
- 如何加载花哨的盒子图像到浏览器缓存后,文档准备好了
- 在文档中定义函数的区别.准备好了吗?
- 文档准备好了,页面加载时没有击中,但它使用开发人员工具控制台工作
- 如何使用在整页网站的嵌套页面上准备好的文档
- 使用$(文档).准备好了一个HTML内部的变量