看來,這是相關的代碼:
getAllItemsForDisplay: function() {
$.getJSON('services/act_getAllItems/', function(data) {
$('#items-list').empty();
$('#items-listTmpl').tmpl(data).appendTo('#items-list');
this.showHideCleanupButton();
BeefyUtils.noSelect();
});
},
什麼是你期待this
被設置爲getJSON
回調裏面?您是否在相關聲明中設置了斷點並查看了this
的值?
如果我理解了jQuery文檔正確的,默認情況下this
一個的getJSON調用內部將是最初在通過AJAX選項的參考。我認爲這是可能改變this
將與ajaxSetup什麼,但我不」看到你已經做到了。
如果你想指this
在getAllItemsForDisplay
開始,那麼你需要的是保存到另一個變量,您可以使用這樣的:
getAllItemsForDisplay: function() {
var obj = this;
$.getJSON('services/act_getAllItems/', function(data) {
$('#items-list').empty();
$('#items-listTmpl').tmpl(data).appendTo('#items-list');
obj.showHideCleanupButton();
BeefyUtils.noSelect();
});
},
在這種情況下,這將是調用回調(或可能是xhr對象)的jQuery函數的上下文。 – tjameson
@tjameson - ajaxSetup的doc似乎表明'this'將被設置爲指向選項對象,除非在選項對象中設置不同。我沒有可以自己查看的可測試示例,但這是我可以從jQuery文檔中收集的。 – jfriend00
無論如何,這可能不是OP所期望的。 – tjameson