我对jquery / javascript有疑问: 我遇到以下情况:
注意我不允许修改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>
答案 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);
}
}