Javascript jQuery-有人能帮我用.ajaxComplete()缝合jQuery代码吗?
我有一个内容加载器,它用一个单独页面的内容替换div中的内容。但是到达的内容包含一个使用jQuery的菜单,而这不起作用。有人告诉我需要重新初始化代码。但是我该怎么做呢?我已经研究了.ajaxComplete(),但我真的不知道如何将它与现有代码缝合在一起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
$('.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,您也可以手动访问它。如果您手动访问它,您将看到中间菜单是如何运行的。