Javascript jQuery缓存问题ajax?

Javascript jQuery缓存问题ajax?,javascript,php,jquery,Javascript,Php,Jquery,做了一些工作,我想我已经找到了答案…jQuery的live函数 但这导致了一个问题。我要做的是用新内容刷新id为container的div的内容。原始内容有jQuery调用,因此当加载新内容时,我希望jQuery也能调用它(如果这有意义的话)。这就是我阅读jQuery的旧的.live函数工作的地方(通过在页面加载和将来任何时候附加内容,直到真正的页面刷新) 我的jQuery如下所示: $(document).ready(function() { $('.f

做了一些工作,我想我已经找到了答案…jQuery的live函数

但这导致了一个问题。我要做的是用新内容刷新id为container的div的内容。原始内容有jQuery调用,因此当加载新内容时,我希望jQuery也能调用它(如果这有意义的话)。这就是我阅读jQuery的旧的.live函数工作的地方(通过在页面加载和将来任何时候附加内容,直到真正的页面刷新)

我的jQuery如下所示:

        $(document).ready(function() {
            $('.fancybox').fancybox({
                width       : '1000px',
                height      : '1000px',
                afterShow   : function() {
                    $( ".fancybox-wrap" ).draggable();
                    }
            }); 


var sourceSwap = function () {
    var newSource = $(this).data('alt-src');
    $(this).data('alt-src', $(this).attr('src'));
    $(this).attr('src', newSource);
}
$(function () {
    $('img.xyz').hover(sourceSwap, sourceSwap);
});
    var originalContent = $('.player').html();
    var originalContent2 = $('.coords').html();
$('img.xyz').hover(function() {
var player = $(this).data('player');
var coords = $(this).data('coords');
     $('.player').html('<strong>'+ player +'</strong>');
     $('.coords').html('<strong>'+ coords +'</strong>');
}, function() {
     $('.player').html(originalContent);
     $('.coords').html(originalContent2);
});
 });
var centerX = <?=$_GET['x']?>;
var centerY = <?=$_GET['y']?>;

$(function(){
var hor = 0;
var vert = 0;
$('#left').click(function () {
    scroll = $('#container').scrollLeft();
    $('#container').animate({'scrollLeft': scroll-300},1000);
    centerX = centerX - 5;
    hor--;
    if(hor <= -3){mapRefresh();}
});
$('#right').click(function () {
    scroll = $('#container').scrollLeft();
    $('#container').animate({'scrollLeft': scroll+300},1000);
    centerX = centerX + 5;
    hor++;
    if(hor >= 3){mapRefresh();}
});
$('#up').click(function () {
    scroll = $('#container').scrollTop();
    $('#container').animate({'scrollTop': scroll-300},1000);
    centerY = centerY - 5;
    vert++;
    console.log(vert, " vert");
    if(vert >= 3){mapRefresh();}
});
$('#down').click(function () {
    scroll = $('#container').scrollTop();
    $('#container').animate({'scrollTop': scroll+300},1000);
    centerY = centerY + 5;
    vert--;
    if(vert <= -3){mapRefresh();}
});
<? $totalHeight = 60 * 42;
$totalWidth = 60 * 42;?>
$('#container').scrollTop((<?=$totalHeight?>-$('#container').height())/2).scrollLeft((<?=$totalWidth?>-$('#container').width())/2);
});


function mapRefresh() {
    $.ajax({
       type     : "POST",
       cache    : false,
       url      : "map2.php?map=refresh",
       data     : {'X': centerX, 'Y': centerY},
       success  : function(data) {
                    $("#container").html(data); 
                  }
      });

}
$(文档).ready(函数(){
$('.fancybox')。fancybox({
宽度:“1000px”,
高度:“1000px”,
afterShow:function(){
$(“.fancybox wrap”).draggable();
}
}); 
var sourceSwap=函数(){
var newSource=$(this).data('alt-src');
$(this.data('alt-src',$(this.attr('src'));
$(this.attr('src',newSource);
}
$(函数(){
$('img.xyz')。悬停(sourceSwap,sourceSwap);
});
var originalContent=$('.player').html();
var originalContent2=$('.coords').html();
$('img.xyz')。悬停(函数(){
var player=$(this.data('player');
var coords=$(this.data('coords');
$('.player').html(''+player+'');
$('.coords').html(''+coords+'');
},函数(){
$('.player').html(原始内容);
$('.coords').html(原始内容2);
});
});
var centerX=;
var centerY=;
$(函数(){
var=0;
var-vert=0;
$('#左')。单击(函数(){
scroll=$(“#容器”).scrollLeft();
$(“#容器”).animate({'scrollLeft':scroll-300},1000);
centerX=centerX-5;
hor--;
如果(hor=3){mapreresh();}
});
$('#向上')。单击(函数(){
scroll=$(“#容器”).scrollTop();
$(“#容器”).animate({'scrollTop':scroll-300},1000);
centerY=centerY-5;
vert++;
控制台日志(垂直,垂直);
如果(顶点>=3){mapreresh();}
});
$('#down')。单击(函数(){
scroll=$(“#容器”).scrollTop();
$(“#容器”).animate({'scrollTop':scroll+300},1000);
centerY=centerY+5;
垂直--;

if(vert)您可能希望使用委托事件处理。您可以在以下答案中阅读:和。您需要使用动态形式的
.on()
,如下所示:
$(“静态父选择器”)。on(“单击”,“动态元素选择器”,函数(){});
如果我理解正确,您希望ajax调用返回包含需要运行的javascript代码的内容。我的建议是查看您是否真的需要返回包含内容的javascript,还是重新构造它,以便所有处理程序/代码都在主页面中,ajax调用只获取实际内容。如果您绝对必须在返回的内容中返回并执行js,然后您将要检查以下问题:。容器包含并被替换的代码类似于以下代码(只有数百个具有不同坐标、图像等)。当刷新div时,它需要继续允许src和alt src被交换,需要在表中获取并显示coords和player名称,我想就是这样。所有这些都在初始页面加载时起作用(所有jQuery都在那里)。只是当刷新div时,它不再工作。对我来说,工作的是在div中包含所有jQuery,当刷新div时,只刷新jQuery和其他div内容,但这会占用带宽,并且变量vert和hor不会重置为0。这就是为什么我在想。on可能会起作用nce.live为现在和将来与当前选择器匹配的所有元素以及.on replaced.live附加一个事件处理程序