Javascript jQuery-有人能帮我用.ajaxComplete()缝合jQuery代码吗?

Javascript jQuery-有人能帮我用.ajaxComplete()缝合jQuery代码吗?,javascript,jquery,html,css,ajax,Javascript,Jquery,Html,Css,Ajax,我有一个内容加载器,它用一个单独页面的内容替换div中的内容。但是到达的内容包含一个使用jQuery的菜单,而这不起作用。有人告诉我需要重新初始化代码。但是我该怎么做呢?我已经研究了.ajaxComplete(),但我真的不知道如何将它与现有代码缝合在一起 $('.dynload').live('click', function(){ var toLoad = $(this).attr('href')+' #content'; $('#content').fadeOut('fast',l

我有一个内容加载器,它用一个单独页面的内容替换div中的内容。但是到达的内容包含一个使用jQuery的菜单,而这不起作用。有人告诉我需要重新初始化代码。但是我该怎么做呢?我已经研究了.ajaxComplete(),但我真的不知道如何将它与现有代码缝合在一起

$('.dynload').live('click',
 function(){

 var toLoad = $(this).attr('href')+' #content';
 $('#content').fadeOut('fast',loadContent);
 $('#ajaxloader').fadeIn('normal'); 
 function loadContent() {
     $('#content').load(toLoad,'',showNewContent())
 }
 function showNewContent() {
    $('#content').fadeIn('fast',hideLoader());
    //Cufon.replace('h1, h2, h3, h4, .menuwrapper', { fontFamily: 
'advent'}); 
 }
 function hideLoader() {
     $('#ajaxloader').fadeOut('normal');
 }

 return false;

 });
这是我用于jQuery菜单的代码:

    $().ready(function() {
                $('#kontrollpanel .slidepanels').kwicks({
                min : 42,
                spacing : 3,
                isVertical : true,
                sticky : true,
                event : 'click'
            });                    
    });
另外,请注意我如何尝试在第一个函数中调用Cufon?这也不起作用,可以重新初始化吗?非常感谢您的帮助。

在showNewContent()函数中调用以下命令:

       $('#kontrollpanel .slidepanels').kwicks({
            min : 42,
            spacing : 3,
            isVertical : true,
            sticky : true,
            event : 'click'

您可以将所有当前代码更改为:

$(function() {
  $('.dynload').live('click', function(){
    $('#ajaxloader').fadeIn('normal');
    var href = this.href + ' #content';
    $('#content').fadeOut('fast',function() {
      $(this).load(href,'', function(data) {
        createMenus();
        $('#ajaxloader').fadeOut('normal');
        $('#content').fadeIn('fast');
        Cufon.replace('h1, h2, h3, h4, .menuwrapper', { fontFamily: 'advent'});
      });
    }); 
    return false;
  });
});
$(createMenus);

function createMenus() {
  $('#kontrollpanel .slidepanels').kwicks({
     min : 42,
     spacing : 3,
     isVertical : true,
     sticky : true,
     event : 'click'
  });                    
}
目前,您在以下方面存在一些问题:

$('#content').load(toLoad,'',showNewContent())
//and...
$('#content').fadeIn('fast',hideLoader());
在上面的例子中,我会在内容一进来就淡出ajax加载程序,但是在
showNewContent
hideLoader
中使用
这可能也会导致您的Cufron错误)。此外,我还将菜单创建转化为一个函数,这样就可以通过传递内容来重复使用。当您执行
$(选择器)
时,您实际执行的是
$(选择器,文档)
文档
是默认上下文(更新:查看您的实际页面,上面的简化并不重要)


您可以传递任何想要的上下文,因此在
load
回调中,我们现在使用
data
作为刚刚加载的内容的上下文,因此,它只在加载的内容中查找要创建菜单的元素……而不会与现有菜单发生冲突。

在我有机会尝试解决方案之前,我将继续并将其设置为答案。我相信这将解决我的大部分问题:)非常感谢!现在我将开始更多地理解这一点。我将仔细阅读代码,并尝试查看到底发生了什么,只是为了确保我真正理解:)@Kenny-如果你还有其他问题,请在这里提问。.你的代码依赖于插件和内容,因此我无法彻底测试,只需发布你遇到的任何问题,我将尽力提供帮助。好的,一开始我发现它不起作用。也就是说,内容会淡出,但新内容不会淡入。实际上,你可以在这里看到它:MutkalEnDENEN。不只是点击中间的蓝色超链接,你就会看到发生了什么。“肯尼,我的错,我是在错误的地方拉着<代码> HREF <代码>,当我把你的代码打包在最后的时候,给一个更新的答案试试。是的,现在起作用了:至少Cufon正在工作。不过,幻灯片不是这样的。您可以在这里尝试:www.matkalenderen.no/index.php。(不管php错误如何)顶部有一个菜单,上面写着“Kontrollpanel”,它链接到Kontrollpanel.php,您也可以手动访问它。如果您手动访问它,您将看到中间菜单是如何运行的。