2012-04-18 75 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调用后

相关问题