2012-04-18 85 views
0

我目前正在使用應用GreyScale懸停效果的jQuery插件。該插件完美地工作。ajax調用後重新初始化jQuery函數

插件所在的頁面使用基於Ajax的過濾。正因爲如此,下面的代碼只能在初始加載時正常工作。我需要能夠在每個過濾器上重新初始化這兩個元素。

我已經用$(document).on嘗試,因爲我使用jQuery 1.7.2,但不能得到這個工作..

$(function() { 
    // fade in the grayscaled images to avoid visual jump 
    $('.colour img').hide().fadeIn(1000); 
    }); 

    // user window.load to ensure images have been loaded 
    $(window).load(function() { 
    $('.colour img').greyScale({ 
     // call the plugin with non-defult fadeTime (default: 400ms) 
     fadeTime: 500, 
     reverse: false 
    }); 
    }); 
+0

哪個插件,你可以分享一些更多的代碼 – mprabhat 2012-04-18 11:26:07

回答

1

你就不能把它放在一個函數,調用該函數在文件準備就緒然後在你的ajax調用之後再次調用它?喜歡的東西:

function YourFunction() { 
    $('.colour img').greyScale({ 
    // call the plugin with non-defult fadeTime (default: 400ms) 
     fadeTime: 500, 
     reverse: false 
    }); 
} 

然後調用它的文件準備好,如:

$(function() { 
    YourFunction(); 
}); 

然後在回調您的AJAX調用再打電話YourFunction()

+0

這並未似乎沒有工作作爲$(document).ready(function(){不會因爲頁面過濾而再次被觸發 – dwarren 2012-04-18 11:54:18

+0

是的,當你在頁面過濾之後自己調用YourFunction()時? – mattytommo 2012-04-18 12:01:16

0

你可以有兩個功能,然後打電話給他們當過你想要它

function x() 
{ 
    // fade in the grayscaled images to avoid visual jump 
    $('.colour img').hide().fadeIn(1000); 
} 

function y() 
{ 
    $('.colour img').greyScale({ 
     // call the plugin with non-defult fadeTime (default: 400ms) 
     fadeTime: 500, 
     reverse: false 
} 

叫他們在初始加載和AJAX調用後

相關問題