【问题标题】:Javascript: Executing 2 functions after each other onmouseover eventJavascript:在onmouseover事件之后执行2个函数
【发布时间】:2012-08-17 16:54:24
【问题描述】:

我有一个关于 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>

【问题讨论】:

  • 你试过这个onmouseover="firstFunction();secondFunction();" ??
  • 您是如何执行这些功能的,以什么顺序执行?您是否将 SecondFunction 作为回调执行?
  • firstFunction() 是否执行任何异步操作,例如发出 AJAX 请求?

标签: javascript jquery function


【解决方案1】:

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

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

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

我推荐访问对象by an unique id:

var myImge = $('#imageId')

【讨论】:

    【解决方案2】:

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

    这可能对你有帮助

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多