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