$(this)
仅在功能范围内相关.但是在功能之外,它失去了这个参考:
$('.classSelect').one("click", function() { $(this); // refers to $('.classSelect') $.ajax({ // content $(this); // does not refer to $('.classSelect') }); });
处理这个问题的更好方法可能是:
$('.classSelect').one("click", function() { var e = $(this); $.ajax({ ... success : function(request) { e.html(request); } }); // end ajax $(this).bind('click', function() { // bind stuff }); // end bind }); // end one
顺便问一下,你熟悉这个load()
方法吗?我发现基本的ajax更容易(因为它作用于包装的集合,而不是它像一个独立的函数$.ajax()
.这里我将如何重写这个使用load()
:
$('.classSelect').one('click', function() { var options = { type : 'post', dataType : 'text', data : { '_service' : myService, '_program' : myProgram , 'param' : myParams } } // end options // load() will automatically load your .classSelect with the results $(this).load(myUrl, options); $(this).click(function() { // etc... }); // end click }); // end one