簡體   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