2

我先写了代码,没有使用函数来原型化,当然,它工作得很好:

$(function() {
    $(".PortfolioFade img")
        .mouseover(function() { 
            popup('PORTFOLIO');
            var src = $(this).attr("src").replace("images/paperclip.png", "images/paperclip-black.png");
            /*var src = $(this).attr("src").match(/[^\.]+/) + "-black.png";*/
            $(this).attr("src", src);
        })
        .mouseout(function() {
            ;
            /*var src = $(this).attr("src").replace("images/paperclip-black.png", "images/paperclip.png");
            $(this).attr("src", src); Look at popup.js mouseover events*/ 
        });
    });

但是,当我以函数形式表达相同的内容时,函数调用似乎不起作用。

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

    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(){
            ;
        });
}

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

在别处定义函数似乎也没有任何效果。

4

3 回答 3

3

这是你想要达到的目标吗?

function ImageRollover(element, popup, original, replacement)
{
    $(element).mouseover(function(){
            //popup(element);
            //var src = $(this).attr("src").replace(original,replacement);
            $(this).attr("src",replacement);

        })
        .mouseout(function(){
            $(this).attr("src",original);
        });
}

http://jsfiddle.net/SqyDg/

于 2012-06-18T02:18:27.367 回答
2

您的函数将第一个变量定义为image_element,但您只是element在代码中引用它。这很可能是它不起作用的一个因素。

您可能还会遇到this函数内部关键字的问题。它所指的对象与原始代码中的对象不同(jQuery 为您设置了 HTML 元素)。在您的函数中,它可能没有设置为任何内容,因此它是指向window.

于 2012-06-18T02:10:49.957 回答
2
    function ImageRollover(image_element, popup_name, original, replacement)
{
    $(element)

元素在哪里定义?

可能你的意思是:

    function ImageRollover(image_element, popup_name, original, replacement)
{
    $(image_element)
于 2012-06-18T02:11:36.883 回答