从链接加载ajax的jquery ajax调用

时间:2010-03-31 02:15:42

标签: jquery ajax wordpress load

//deep linking 

$("document").ready(function(){
    contM = $('#main-content');
    contS = $('#second-content');
    $(contM).hide();
    $(contM).addClass('hidden');
    $(contS).hide();
    $(contS).addClass('hidden');
    function loadURL(URL) {
        //console.log("loadURL: " + URL);
        $.ajax({ url: URL, 
                type: "POST",
                dataType: 'html',
                data: {post_loader: 1},
                success: function(data){
                    $(contM).html(data);
                    $(contM).animW();
                    }
        });
    }

    // Event handlers
    $.address.init(function(event) {
        //console.log("init: " + $('[rel=address:' + event.value + ']').attr('href'));
    }).change(function(event) {
        $.ajax({ url: $('[rel=address:' + event.value + ']').attr('href'), 
                type: "POST",
                dataType: 'html',
                data: {post_loader: 1},
                success: function(data){
                    $(contM).html(data);
                    $(contM).animW();
        }});
        //console.log("change");
    })

    $('.update-main a').live('click', function(){
        loadURL($(this).attr('href'));
    });

  $(".update-second a").live('click', function() {
    var link = $(this);
        $.ajax({ url: link.attr("href"), 
                dataType: 'html',
                data: {post_loader: 1},
                success: function(data){
                    $(contS).html(data);
                    $(contS).animW();
        }});
  });

});

我正在使用jquery和'addresses'插件来加载带有ajax的内容并保持分页。我遇到的问题是一些内容加载链接,旨在将内容加载到辅助窗口。

我正在使用.live()方法来允许jquery侦听加载到主内容div中的新链接。

直到为ajax加载的这些新链接调用.ajax()方法,方法开始,但在接收数据之前跟随原始链接。我假设问题出在客户端脚本中,但是对服务器的调用可能存在问题。我正在使用wordpress循环来解析url并生成通过jquery加载的html。

感谢您的任何提示!

1 个答案:

答案 0 :(得分:4)

问题是,当您点击<a>时,您的浏览器会说“嘿去那里”...需要通过添加return false;(或e.preventDefault();来停止脚本中的此行为),像这样:

$('.update-main a').live('click', function(){
    loadURL($(this).attr('href'));
    return false;
});

$(".update-second a").live('click', function() {
  var link = $(this);
    $.ajax({ url: link.attr("href"), 
            dataType: 'html',
            data: {post_loader: 1},
            success: function(data){
                $(contS).html(data);
                $(contS).animW();
    }});
    return false;
});

替代方案是这种格式:

$('.update-main a').live('click', function(e){
    loadURL($(this).attr('href'));
    e.preventDefault();
});