2010-11-27 114 views
0

我有下面的代碼片段:jQuery - fadeOut回調函數不工作?

$(".caption").click(function() { 
    var enlargementDiv = $(this).closest(".image-enlargement"); 
    enlargementDiv = enlargementDiv.find("div.enlargement"); 
    enlargementDiv.fadeOut(500, 
     function() { 
      enlargementDiv.html($(this).find("div").html()); enlargementDiv.fadeIn(500); 
     } 
    ); 
}); 

這是基於在window.load功能。如果我在函數中使用這些語句並將它們放在函數之後,這將起作用;但它不能像現在這樣工作。我有一個標題列表(目前它們只是一組卡片的產品代碼,但它們將陳述出現在卡片上的實際標題),並點擊其中一個我希望圖像淡出,更改爲一個被選中並淡入。然而,正如我所說的,這隻有在我將這些語句放在函數之外時纔有效。這意味着用戶在淡出之前突然看到圖像變化,這並不令人滿意。

任何人都可以看到有什麼不對嗎?如果有人想讓我檢查課程名稱等,請重新閱讀這個問題,你會發現它確實與回調函數外的語句一起工作!

在此先感謝。

問候,

理查德

回答

2

嘗試:

$(".caption").click(function() { 
    var $this = $(this); 
    var enlargementDiv = $this.closest(".image-enlargement"); 
    enlargementDiv = enlargementDiv.find("div.enlargement"); 
    enlargementDiv.fadeOut(500, 
     function() { 
      enlargementDiv.html($this.find("div").html()); enlargementDiv.fadeIn(500); 
     } 
    ); 
}); 
+0

當然...`$(本)`的`fadeOut`功能改變,要麼或`$(本) `在回調函數中不可訪問(不知道爲什麼這會是`$ this`可訪問的)。謝謝!當我能夠時,將會標記爲答案。 – ClarkeyBoy 2010-11-27 05:37:40