Jquery加载的内容,不';不能使用其他脚本

Jquery加载的内容,不';不能使用其他脚本,jquery,scripting,refresh,Jquery,Scripting,Refresh,我是一个jquery初学者,所以我真的希望这对于有经验的人来说是非常直接的。我最近实现了一个jquery脚本,它从另一个html页面加载div的内容。这个效果很好,我对结果很满意。我现在遇到的问题是,我的Lytebox和Flexcroll脚本无法在加载的内容上工作。下面是加载内容脚本。我想我可以补充一下 fleXenv.initByClass("flexcroll"); initLytebox(); 到脚本的末尾。当第一次加载内容时,这不起作用。但是如果我点击页面中的一个死链接,它再次运行这

我是一个jquery初学者,所以我真的希望这对于有经验的人来说是非常直接的。我最近实现了一个jquery脚本,它从另一个html页面加载div的内容。这个效果很好,我对结果很满意。我现在遇到的问题是,我的Lytebox和Flexcroll脚本无法在加载的内容上工作。下面是加载内容脚本。我想我可以补充一下

fleXenv.initByClass("flexcroll"); 
initLytebox();
到脚本的末尾。当第一次加载内容时,这不起作用。但是如果我点击页面中的一个死链接,它再次运行这个脚本,那么Lytebox和Flexcroll脚本就会启动。我基本上需要知道何时以及如何刷新Lytebox和Flexcroll脚本

$(document).ready(function() {  
$('#nav li a').click(function(){  

var toLoad = $(this).attr('href')+' #content';  
$('#content').fadeOut('400',loadContent);  
$('#load').remove();  
$('#wrapper').append('<span id="load">LOADING...</span>');  
$('#load').fadeIn('normal');  
function loadContent() {  
    $('#content').load(toLoad,'',showNewContent()); 
}  
function showNewContent() {  
    $('#content').fadeIn('400',hideLoader());  
}   
function hideLoader() {  
    $('#load').fadeOut('normal');  
}  
return false;  
}); 


});  
$(文档).ready(函数(){
$('#nav li a')。单击(函数(){
var toLoad=$(this.attr('href')+'#content';
$(“#内容”).fadeOut('400',loadContent);
$(“#加载”).remove();
$(“#包装器”).append('LOADING…');
$('加载').fadeIn('正常');
函数loadContent(){
$('#content').load(toLoad',showNewContent());
}  
函数showNewContent(){
$('#content').fadeIn('400',hideLoader());
}   
函数hideLoader(){
$('加载').fadeOut('正常');
}  
返回false;
}); 
});  

任何帮助都将不胜感激。我目前正处于一个3天沮丧的深渊的底部。梦想编织者在愚弄我

由于使用了相同的选择器,它们似乎发生了冲突。当页面头部的脚本引用顺序不正确时,也会发生这种情况

尝试使用jquerynoconflict方法

如果不起作用,则重写$function。说明在这里


我希望这会有所帮助。

您不能只将它们添加到脚本末尾,因为加载是异步进行的。换句话说,当您的
单击
函数返回时,尚未加载任何内容;这在后台发生,回调函数
showNewContent
完成后被调用

我猜您也希望在该函数中进行初始化:

function showNewContent() {  
    fleXenv.initByClass("flexcroll");
    initLytebox();
    $('#content').fadeIn('400',hideLoader());  
}   

此外,与此相反:

$('#content').load(toLoad,'',showNewContent()); 
写下:

$('#content').load(toLoad,'',showNewContent); 
与其调用
showNewContent
函数并将其结果传递给
load
函数,不如将
showNewContent
函数本身传递给
load
。您可以这样做,因为在JavaScript中,一切都是一个对象

同样的事情也适用于
hideLoader


此外,我认为这里的引号中有太多的空格:

var toLoad = $(this).attr('href')+' #content'; 

使用它!对于任何一个像我过去三天所做的那样遭受痛苦的人。以下是我的解决方案:

我在html标题中创建了一个新脚本:

$(document).ajaxComplete(function(){     
// fire when any Ajax requests complete }) 

然后告诉所有脚本在此脚本中进行初始化。

感谢您的输入,托马斯,我已将代码修改为,但它仍然不能玩游戏。这意味着什么?我想我理解逻辑,但我很难实现它。我尝试添加var j=jQuery.noConflict();在脚本的开头替换$,之后我还尝试添加$.noConflict();在“return false”之前,然后在初始化其他脚本之后,没有冲突。仍然没有运气,我一直在认真阅读,我相信这是我的问题。我曾经尝试过实现noConflict,但我显然是一个业余爱好者,如果没有详细的指南,我就无法正确地实现它。所以我想也许我可以通过替换“jquery”的所有$symbol来解决这个问题,因为我的脚本非常小,但当我这样做时,它似乎根本不会运行脚本。有什么想法吗?好的,我已经实现了noConflict jQuery。看来这不是问题所在。我需要编写一行代码,以便在重新加载站点上的其他脚本后立即加载新内容。有人能帮忙吗?如果加载的HTML页面没有ajax请求会发生什么?如果调用了ajaxComplete,如果处理不正确,可能会导致一些问题。