[英]Loading slim box with .on()
我正在使用slimbox( http://www.digitalia.be/software/slimbox )一种非常流行的jQUery轻型灯箱。
我过去曾经使用过很多,但是现在我有点卡住了。 我有一个通过AJAX加载的表单,因此我需要使用.on()
函数来激活slimbox。
但是我无法使它工作。 我看了一下slimbox代码,它对我来说没有多大意义。 我在我的尝试:
$("#content.settings").on("click","div.scroll a.slimbox", function (e) {
e.preventDefault();
$(this).slimbox();
});
这有效,但仅在第二次单击时有效,由于某种原因,它需要两次单击同一对象才能起作用。 有任何想法吗?
问题是,第一次单击元素时, slimbox
尚未在元素上初始化,当您第一次单击它时, slimbox
已初始化,随后的单击工作正常。
一种可能的解决方案是在初始化小部件后触发click事件
$("#content.settings").on("click","div.scroll a.slimbox", function (e) {
var $this = $(this);
e.preventDefault();
if(!$this.data('slimboxed')){
$this.slimbox().data('slimboxed', true).click();
}
});
一种解决方法是在ajax请求完成后再次调用插件。 因此,将其添加到您的成功方法中
$("#content.settings div.scroll a.slimbox").slimbox();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.