将 jQuery UI 滑块添加到未来元素的最有效方法是什么?
目前,我正在使用 AJAX 重新加载网站的一部分,其中包含来自 jQuery UI 的滑块。这些滑块不会重新加载,因为在我的 javascript 中,它们仅在 DOM 上加载。
core.js
$(function() {
$('.slider').slider();
$('#load').click(function() {
$.getScript('load.js');
});
});
load.js
$('#foobar').html('<div class="slider"></div><div class="slider"></div>');
index.html
<a href="#" id="load">Click</a>
<div id="foobar">
<div class="slider"></div>
</div>
我想这与向未来元素添加滑块相同。我查看了 .delegate() 和 .live() ,但我无法让它们适合我的情况。有什么建议吗?
我正在寻找一种尽可能不引人注目地解决这个问题的方法。
Currently, I am reloading a section of my site with AJAX which has sliders from jQuery UI. Those sliders are not reloaded because in my javascript, they are only loaded on DOM.
core.js
$(function() {
$('.slider').slider();
$('#load').click(function() {
$.getScript('load.js');
});
});
load.js
$('#foobar').html('<div class="slider"></div><div class="slider"></div>');
index.html
<a href="#" id="load">Click</a>
<div id="foobar">
<div class="slider"></div>
</div>
I suppose this would be the same as adding sliders to future elements. I've looked at .delegate()
and .live()
and I can't get those to work for my situation. Any suggestions?
I am looking for a way to solve this as unobtrusively as possible.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 ajax 回调函数中,您可以告诉 jquery ui 恢复所有回调,就像您创建它们一样
$('.sliders').slider();
或者,如果您要动态添加它们,您可以执行以下操作:
我的示例的 JS Fiddle 链接
编辑:
试试这个代码:
In the ajax callback function you can tell jquery ui to reinstate all callbacks just like you created them
$('.sliders').slider();
Or if you are adding them dynamically you can do something like this:
JS Fiddle link for my example
Edit:
Try this code:
我会采取一些不同的做法。让我知道您为什么或为什么不喜欢以下方法。
core.js
load.html
I would do this a little differently. let me know why or why not you prefer the following method.
core.js
load.html