我正在使用 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/