jquery – 在回调中发送$(this)

前端之家收集整理的这篇文章主要介绍了jquery – 在回调中发送$(this)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个jQuery点击事件
$('#sidebar .nav a span').click(function () {
  var sidebar_nav = $(this);
  $("#main").load("type_change.PHP?id="+id,successCallback);

然后我有回调来做绑定

var successCallback = function(responseText,textStatus,XMLHttpRequest) {
  //doing all the binding in here
}

有没有办法将$(this)或sidebar_nav传递给successCallback函数,所以我可以用它做点什么

解决方法

你可以使用 $.proxy
$("#main").load("type_change.PHP?id="+id,$.proxy(successCallback,$(this)));

这会将successCallback设置为您传递给第二个参数的任何内容.

如果你想让它仍然引用$(“#main”),那么你可以改变回调以接受另一个参数:

var successCallback = function(responseText,XMLHttpRequest,target) {
  //doing all the binding in here
}

并称之为:

var sidebar_nav = $(this);
$("#main").load("type_change.PHP?id="+id,function() {
    var args = $.makeArray(arguments);
    args.push(sidebar_nav);
    successCallback.apply(this,args);
});

target将引用sidebar_nav.

原文链接:https://www.f2er.com/jquery/177451.html

猜你在找的jQuery相关文章