繁体   English   中英

用.on()加载超薄盒子

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM