我正在使用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,当您第一次单击该元素进行初始化时,随后的单击工作正常。

一种可能的解决方案是在初始化小部件后触发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();
    }
});

关于php - 用.on()加载超薄盒子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18058229/

10-11 03:26