我有这个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.