0
$(document).ready(function() {

var hash = window.location.hash.substr(1);
var href = $('#nav li a').each(function(){
    var href = $(this).attr('href');
    if(hash==href.substr(0,href.length-5)){
        var toLoad = hash+'.php #conten';
        $('#conten').load(toLoad)

    }   

});

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

    var toLoad = $(this).attr('href')+' #conten';
    $('#conten').hide('fast',loadContent);
    $('#load').remove();
    $('#conten').append('<span id="load"></span>');
    $('#load').fadeIn('normal');
    window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
    function loadContent() {
        $('#conten').load(toLoad,'',showNewContent())
    }
    function showNewContent() {
        $('#conten').show('normal',hideLoader());
    }
    function hideLoader() {
        $('#load').fadeOut('normal');
    }
    return false;

});

现在的问题是我需要在使用 ajax 加载内容后加载 javascripts 代码我如何使用 Ajax 回调方法,例如 jQuery 的 ajax() 方法中的一个来定义请求完成时要执行的内容。???

添加这个功能怎么样???

$.ajax({
    type: "POST",
    url: "product.php",
    dataType: "html",
    success: function(msg){

        if(parseInt(msg)!=0)
        {
            $('Conten').html(msg);
            $('#loading').css('visibility','hidden');
        }
    }

});
4

1 回答 1

0

在 .load() 参数中将 () 从 showNewContent() 中取出。换句话说,从这里更改您的代码:

function loadContent() {
    $('#conten').load(toLoad,'',showNewContent())
}

对此:

function loadContent() {
    $('#conten').load(toLoad,'',showNewContent)
}

一旦.load()操作完成,showNewContent()就会被调用。

于 2012-08-21T12:54:09.780 回答