2012-06-12 58 views
0

我曾經有過這樣的事情:調試:鼠標懸停功能不被調用

$(function() { 
$(".PortfolioFade img") 
    .mouseover(function() { 
        popup('PORTFOLIO'); 
        var src = $(this).attr("src").replace("images/paperclip.png", "images/paperclip-black.png"); 
     $(this).attr("src", src); 
    }) 
    .mouseout(function() { 
        ; 
    }); 
    }); 

,當我試圖把它變成一個函數並調用它,它並沒有在所有的工作。圖像未被替換。

以下是功能和以下調用不起作用,並且我爲什麼不起作用感到茫然。

$(document).ready(function() { 
    // put all your jQuery goodness in here. 
    $('body').hide().fadeIn(1000); 

    //Changing Fonts 
    function changeFont(element, fontFamily, fontSize) 
{ 
    $(element).css("font-family", fontFamily); 
    $(element).css("font-size", fontSize); 
} 
    function ImageRollover(image_element, popup_name, original, replacement) 
{ 
    $(element) 
     .mouseover(function(){ 
      popup(popup_name); 
      var src = $(this).attr("src").replace(original,replacement); 
      $(this).attr("src",src); 

     }) 
     .mouseout(function(){ 
      ; 
     }); 
} 

$(function) { 
    ImageRollover(".Portfolio img",'PORTFOLIO',"images/paperclip.png","images/paperclip-black.png"); 
}); 


}); 
+0

試着看到螢火蟲,看看發生了什麼.. –

回答

1

編輯:對不起,我應該已經看到在第一個地方是你的ImageRollover()函數聲明參數image_element但隨後的函數內使用element。所以內功能變化:

$(element) 
    .mouseover(function(){ 

要:

$(image_element) 
    .mouseover(function(){ 

(而忘記什麼我以前說過。)

你原來的版本有什麼,但新版本中並不算一個文件就緒處理程序嘗試將來電轉接到您ImageRollover功能的文檔中的準備如下:

$(function() { 
    ImageRollover(".Portfolio img",'PORTFOLIO',"images/paperclip.png","images/paperclip-black.png"); 
}); 

不能增加事件處理程序尚未被解析的元素 - 文檔準備處理不叫,直到整個文件有已經解析過,所以你可以在附加事件處理程序。或者,您可以將腳本放在操作元素之後的某個位置,例如,放在身體的盡頭。

我傾向於將ImageRollover函數聲明移入文檔中,只是爲了讓它不在全局名稱空間中(假設您只是從文檔中調用它),但這不是必需的讓它起作用。

+0

我這樣做,但它也沒有工作嗎?看看上面的代碼,我更新了它。也許我做錯了什麼? – Louis93

+0

對不起,我不小心在我的代碼中留下了一個括號,這是一個語法錯誤 - 我現在修復了它。但是,從您更新的問題看來,您似乎已經擁有了文檔預處理程序中的所有內容,顯然這不是問題所在。 – nnnnnn