php - 使用 .on() 加载 slim box

标签 php jquery slimbox

我正在使用 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 尚未在该元素上初始化,当您第一次单击它时,它会被初始化,然后后续的单击就可以正常工作。

一种可能的解决方案是在小部件初始化后触发点击事件

$("#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() 加载 slim box,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18058229/

相关文章:

PHP 魔术引号问题

jquery - 点击事件仅在手指不滑动时起作用

javascript - 在 Slimbox 中隐藏图像标题

javascript - jquery slideUP/DOWN 工作有趣

javascript - 是否可以在 slimbox 中显示的图像中添加链接?

javascript - 如何仅在第一次访问时在页面加载时显示带有 slimbox 的弹出窗口?

php - DocuSign API : initialHere and signHere on the same document. ..或不是

php - PHP : Error: Expected an order id to be passed 中的 Paypal 智能按钮服务器集成

php - 如何覆盖 i18n 文件中的默认文本?

javascript - jquery:如何检查 radio 组刻度模式是否正确