0

jquery/javascript について質問があります。次のような状況です。

  • リンクがあります
  • onmouseover プロパティがあります
  • ホバーすると、デフォルトの FirstFunction() が呼び出され、この関数が画像を置き換えます。

この FirstFunction() はいくつかの異なる重要なタスクを実行するため、変更することは許可されていないことに注意してください。私がしたいこと:

  • 2 番目の関数を呼び出します。
  • 2 番目の関数は、イメージを元に戻す必要があるため、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");
        }
}

通常、スクリプトをデバッグすると動作しますが、イメージは元に戻されません。そして、「FirstFunctions」の実行が完了する前に「SecondFunction」が終了していることに気付きました。

それについて何かできることはありますか?SecondFunction => FirstFunction.ready の設定のように? (最初の関数も別のファイルにあります。)

どんな入力でも大歓迎です

小さな更新、次のように関数を呼び出しています。

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

2 に答える 2

1

1) 2 番目の関数で受け取っているオブジェクト タイプを確認します。この関数をどのように呼び出していますか? コードを提供できますか?

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 に答える