Javascript:在onmouseover事件之后执行2个函数

时间:2012-08-17 07:35:40

标签: javascript jquery function

我对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>

2 个答案:

答案 0 :(得分:1)

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

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

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

我建议访问对象by an unique id

var myImge = $('#imageId')

答案 1 :(得分:0)

  

我能为此做些什么吗?像在SecondFunction中设置=&gt;   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);
    }
}