在ajax调用之后重新初始化jQuery函数

时间:2012-04-18 11:23:38

标签: jquery ajax

我目前正在使用一个应用GreyScale悬停效果的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
    });
  });

2 个答案:

答案 0 :(得分:1)

难道你不能把它放在一个函数中,在文档中调用该函数然后在你的ajax调用之后再次调用它吗?类似的东西:

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

然后在准备就绪的文件上调用它,如:

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

然后在AJAX呼叫的回调中再次呼叫YourFunction()

答案 1 :(得分: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调用之后调用它们