获取“CSS 和 CSS” jQuery UI”之后-> jQuery 加载(ajax)
我有一个带有 jQuery UI 的页面,工作正常。在此页面中,我使用 jquery.load() 更改了一些 div 容器的内容,效果也很好。但是,如果我加载的内容本身使用 jQuery UI(以显示手风琴或对话框为例),我需要在 div 容器中再次加载 jQuery .js 文件和 css 文件。否则它不会工作:(
我该怎么做才能不再次加载文件并在重新加载的 div 中拥有一个工作的 ui-dialog、ui-accordion、ui-buttons...?
希望你明白我想告诉你的:)
I have a page with jQuery UI, working fine. Within this page I change the content of some div containers with jquery.load(), works fine too. But if the content which I load uses jQuery UI by itself (to show a accordion or a dialog as an example), I need to load the jQuery .js files and the css file again in the div container. Else it won't work :(
What can I do to not load the files again AND having a working ui-dialog, ui-accordion, ui-buttons, ... in the reloaded div?
Hope you understand what I wanted to tell :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
jQuery UI 依赖于 jQuery 框架。如果没有 jQuery 本身,您就无法将 jQuery UI 嵌入到页面中。
jQuery UI relies on the jQuery framework. You cannot have jQuery UI embedded in a page without having jQuery itself as well.
例如,当您使用 jquery ui 按钮时,您可以通过如下所示的某个调用来初始化它们:
现在,假设您通过 ajax 加载、jquery.load() 或任何其他方式加载页面的一大块(据我所知,您可以单击某些按钮后动态手动创建新的 DOM 节点)
您在这里唯一要做的就是将代码段包装在函数中
,无论您在哪里有 ajax 加载,都可以在回调中调用此函数。像这样:
现在对您使用的 jquery ui 的所有元素(日期选择器、手风琴、按钮或其他元素)执行相同的操作...
请记住,这是一个非常基本的想法,为了获得更大的灵活性,您可以添加其他功能,以便不要在同一个元素上初始化
.button();
两次,您也可以为此添加某种测试以及许多其他内容,但这只是它的基本思想。when you use jquery ui buttons for example you initialize them trough a certain call like this:
now, lets say you load a big piece of your page trough ajax load, jquery.load() or any other means (for all i know you could be manually creating new DOM nodes on the fly after certain button clicks)
the only thing you would do here is wrap your piece of code in a function
and wherever you have an ajax load you can call this function in your callback. like so:
now do the same with all elements of jquery ui you use, datepickers, accordions, buttons or other...
please keep in mind, that this is a very basic idea, for more flexibility you can add other features, in order not to initialize
.button();
on the same element twice you could add some sort of test for that too, and many other things, but this is just the basic idea of it.