我是否需要在jQuery.load()中使用选择器?

我是否需要在jQuery.load()中使用选择器?,jquery,Jquery,我有以下资料: function callback_function(a,b,c) { var aa = a; var bb = b; $('#content').html("xxx"); } $('#content').load(href, "", function (a, b, c) { callback_function(a, b, c) }); 我想做的是将值“xxx”放入div\content的html中。有人能解释一下怎么做吗?我认为它将与回调函数中的代码

我有以下资料:

function callback_function(a,b,c) {
    var aa = a;
    var bb = b;
    $('#content').html("xxx");
}

$('#content').load(href, "", function (a, b, c) { callback_function(a, b, c) });
我想做的是将值“xxx”放入
div\content
的html中。有人能解释一下怎么做吗?我认为它将与回调函数中的代码一起工作,但如果这样做有效,那么实际的
.load()
也会将一些数据放入
\content

如果我在
回调函数()中执行所有操作,我是否需要
.load()
左侧的某些内容。我希望这是有道理的。请注意,它还没有准备好生产。我意识到我需要重命名参数,进行错误检查等等

请注意,我想使用.load而不是.ajax。因为我正在使用下面的包装器。事先很抱歉,代码太多:

$.fn.loadWithEffect = function()
{
    // Add effect layer
    this.addEffectLayer({
        message: $.fn.loadWithEffect.defaults.message
    });

    // Rewrite callback function
    var target = this;
    var callback = false;
    var args = $.makeArray(arguments);
    var index = args.length;
    if (args[2] && typeof args[2] == 'function')
    {
        callback = args[2];
        index = 2;
    }
    else if (args[1] && typeof args[1] == 'function')
    {
        callback = args[1];
        index = 1;
    }

    // Custom callback
    args[index] = function(responseText, textStatus, XMLHttpRequest)
    {
        // Get the effect layer
        var refElement = getNodeRefElement(this);
        var layer = $(refElement).next('.loading-mask');
        var span = layer.children('span');

        // If success
        if (textStatus == 'success' || textStatus == 'notmodified')
        {
            // Initial callback
            if (callback)
            {
                callback.apply(this, arguments);
            }

            // Remove effect layer
            layer.stop(true);
            span.stop(true);
            var currentMarginTop = parseInt(span.css('margin-top'));
            var marginTop = parseInt(span.css('margin-top', '').css('margin-top'));
            span.css({'marginTop':currentMarginTop+'px'}).animate({'opacity':0, 'marginTop':(marginTop-40)+'px'}, {
                'complete': function()
                {
                    layer.fadeAndRemove();
                }
            });
        }
        else
        {
            span.addClass('error').html($.fn.loadWithEffect.defaults.errorMessage+'<br><a href="#">'+$.fn.loadWithEffect.defaults.retry+'</a> / <a href="#">'+$.fn.loadWithEffect.defaults.cancel+'</a>');
            span.children('a:first').click(function(event)
            {
                event.preventDefault();

                // Relaunch request
                $.fn.load.apply(target, args);

                // Reset
                span.removeClass('error').html($.fn.loadWithEffect.defaults.message).css('margin-left', '');
            });
            span.children('a:last').click(function(event)
            {
                event.preventDefault();

                // Remove effect layer
                layer.stop(true);
                span.stop(true);
                var currentMarginTop = parseInt(span.css('margin-top'));
                var marginTop = parseInt(span.css('margin-top', '').css('margin-top'));
                span.css({'marginTop':currentMarginTop+'px'}).animate({'opacity':0, 'marginTop':(marginTop-40)+'px'}, {
                    'complete': function()
                    {
                        layer.fadeAndRemove();
                    }
                });
            });

            // Centering
            span.css('margin-left', -Math.round(span.outerWidth()/2));
        }
    };

    // Redirect to jQuery load
    $.fn.load.apply(target, args);

    return this;
};
$.fn.loadWithEffect=函数()
{
//添加效果层
这是一个有效层({
消息:$.fn.loadWithEffect.defaults.message
});
//重写回调函数
var目标=此;
var callback=false;
var args=$.makeArray(参数);
var指数=args.length;
if(args[2]&&typeof args[2]=“函数”)
{
callback=args[2];
指数=2;
}
else if(args[1]&&typeof args[1]=“函数”)
{
callback=args[1];
指数=1;
}
//自定义回调
args[index]=函数(responseText、textStatus、XMLHttpRequest)
{
//获得效果层
var refElement=getnodereflement(this);
var layer=$(refElement).next('.loading mask');
var span=layer.children('span');
//如果成功
如果(textStatus='success'| | textStatus=='notmodified')
{
//初始回调
如果(回调)
{
apply(这个,参数);
}
//移除效果层
层。停止(真);
span.stop(true);
var currentMarginTop=parseInt(span.css('margin-top');
var marginTop=parseInt(span.css('margin-top','').css('margin-top');
css({'marginTop':currentMarginTop++'px'}).animate({'opacity':0,'marginTop':(marginTop-40)+'px'}{
“完成”:函数()
{
layer.fadeAndRemove();
}
});
}
其他的
{
span.addClass('error').html($.fn.loadWithEffect.defaults.errorMessage+'
/'); span.children('a:first')。单击(函数(事件) { event.preventDefault(); //重新启动请求 $.fn.load.apply(目标,参数); //重置 span.removeClass('error').html($.fn.loadWithEffect.defaults.message).css('margin-left',''); }); span.子项('a:last')。单击(函数(事件) { event.preventDefault(); //移除效果层 层。停止(真); span.stop(true); var currentMarginTop=parseInt(span.css('margin-top'); var marginTop=parseInt(span.css('margin-top','').css('margin-top'); css({'marginTop':currentMarginTop++'px'}).animate({'opacity':0,'marginTop':(marginTop-40)+'px'}{ “完成”:函数() { layer.fadeAndRemove(); } }); }); //定心 css('margin-left',-Math.round(span.outerWidth()/2)); } }; //重定向到jQuery加载 $.fn.load.apply(目标,参数); 归还这个; };
使用
ajax()
代替
load()


只需更改代码,这样您就不会进行两次选择:

function callback_function(a,b,c) {
    var aa = a;
    var bb = b;
    $(this).html("xxx"); //<-- key!
}

$('#content').load(href, callback_function);

请允许我出于其他原因使用load。@Angela如果您没有加载到dom元素中,那么使用
load
是没有意义的……谢谢Neal,但我实际上使用的是使用load的包装器。我不能换包装纸。我只需要知道如何设置要加载的参数,因为这些参数与包装器参数相同。很抱歉,在我试图解释更多内容时,有人进来编辑了我的原始问题,遗漏了部分内容。我想说的是,我正在使用一个包装器来调用以下命令://重定向到jQuery load:$.fn.load.apply(target,args);你认为我可以把包装改成使用.ajax吗?@Angela这个神秘的“包装”是什么?你用它干什么?包装太长了,不能放在这里。它用于在用户屏幕上显示“加载”消息。我正在使用的模板的一部分。我可以复制包装器代码,用ajax代替Load。我只是用包装器代码更新了问题。希望这不会超出问题的范围。
function callback_function(a,b,c) {
    var aa = a;
    var bb = b;
    $(this).html("xxx"); //<-- key!
}

$('#content').load(href, callback_function);
function callback_function(a,b,c) {
    var aa = a;
    var bb = b;
    $("#content").html("xxx"); 
}
$.ajax({
   url : href,
   success: callback_function
});