0

我有一个关于 jquery/javascript 的问题:我处于以下情况:

  • 我有一个链接
  • 它有一个属性 onmouseover
  • 当我将鼠标悬停时,它会调用默认的 FirstFunction(),此函数会替换图像。

注意我不允许修改 FirstFunction(),因为它执行一些不同的重要任务。我想做的事:

  • 调用第二个函数:
  • 第二个函数应该将图像替换回原始图像,因此在它被之前的 FirstFunction() 更改之前

我写了以下脚本:

function SecondFunction(obj) {
    a = $(obj).find("img");
    if (a != null && a.attr("src")!= null)
        if (a.attr("src").lastIndexOf("img_4") != -1)
            a.attr("src", "newSmallImg.png");
        else if(a.attr("src").lastIndexOf("img_2")!=-1){
            a.attr("src", "newBigImg.png");
        }
}

通常当我调试脚本时,它可以工作等等,但图像不会被替换回来。而且我注意到“SecondFunction”在“FirstFunctions”完成执行之前完成。

我能做点什么吗?就像在 SecondFunction => FirstFunction.ready 中设置一样?(第一个函数也在不同的文件中。)

欢迎任何意见

小更新,我调用函数如下:

<a onmouseover="FirstFunction(); SecondFunction(this);" ...>
    <span>
       <img src="" ... />
    </span>
</a>
4

2 回答 2

1

1)检查你在第二个函数中收到的对象类型,你是如何调用这个函数的?你能提供代码吗?

2)检查您在这一行中找到的图像是否是您期望的图像:

a = $(obj).find("img");

我建议通过唯一 id访问对象:

var myImge = $('#imageId')
于 2012-08-17T07:55:23.483 回答
0

我能做点什么吗?就像在 SecondFunction => FirstFunction.ready 中设置一样?(第一个函数也在不同的文件中。)

可能这对你有帮助

<a onmouseover="FirstFunction(this, SecondFunction)" ...>
    <span>
       <img src="" ... />
    </span>
</a>

FirstFunction()像这样改变

function FirstFunction(obj, callback) {
    //your code here

    if(callback && typeof callback === 'function') {
        callback(obj);
    }
}
于 2012-08-17T07:56:19.770 回答