1

もう少し機能を追加したいドロップ機能の動的ドロップダウン メニューがあります。メニューはページ ナビゲーションであり、リンクにカーソルを合わせると、コンテンツ領域の画像のソースが変更され、アクティブなリンクが反映されます。これは単純な attr(src) の変更です。

アクティブな画像をフェードアウトし、ソースをデフォルトに戻し、メニューを離れるときにフェードインして元に戻すコードを追加しましたが、そのコードを If/Else ステートメント内に配置したいと考えています。ソースがデフォルトから変更されていない場合、画像がフェードアウトして戻ってくるのを防ぎます。

構文は正しいようですが、関数が正しく動作していません。私は比較的新しいので、何かが欠けている可能性があります。機能的で信頼性の高いコードに関するアドバイスをいただければ幸いです。

時間をありがとう、ダニエル


else ステートメント (フェードアウト、ソースの変更、フェードイン) に埋め込まれた関数は、思いどおりに機能します。

$("#trigger").mouseleave(function(){
    var img = $("#img_home");
    if (img.src = "Images/IMG_4663_bw.jpg"){
      img.noop();
    } else {
      img.fadeOut(1000, function(){
         img.attr("src","Images/IMG_4663_bw.jpg");
         img.fadeIn(1000);
      });
    }
});
4

4 に答える 4

3
if (img.src = "Images/IMG_4663_bw.jpg")

値を割り当てています。==演算子ではなく、演算子が必要です=。ただし、条件
のみを探している場合は、条件を逆にしてください。else

if (img.attr('src') != "Images/IMG_4663_bw.jpg") {
    // fade and stuff
}
于 2011-01-04T23:35:21.363 に答える
1

imgjQuery オブジェクトです。
を呼び出して、その属性にアクセスする必要がありますimg.attr('src')

条件によってプロパティif割り当てられます。等しいかどうかを確認するには、 (equality) または(strict equality) 演算子imgを使用する必要があります。=====

jQuery のnoopメソッドは静的メソッドです。あなたは書くことによってそれを呼び出しますjQuery.noop()

最後に、電話noop()しても意味がありません。まず第一に、空の中かっこのペアにステートメントが含まれていなくても問題はありません: if (something) { } else { ... }
また、if条件を逆にして、次のものを取り除くこともできelseます。

if (img.attr("src") === "Images/IMG_4663_bw.jpg") {
  img.fadeOut(1000, function() {
     img.attr("src", "Images/IMG_4663_bw.jpg").fadeIn(1000);
  });
}
于 2011-01-04T23:34:17.450 に答える
0

試す

$("#trigger").mouseleave(function(){
var img = $("#img_home"); 
 if (img.src == "Images/IMG_4663_bw.jpg"){
  img.noop(); 
 } 
 else {
  img.fadeOut(1000,function(){
  img.attr("src","Images/IMG_4663_bw.jpg");
  img.fadeIn(1000); 
  }); 
 } 
});

違いは、そのソースを画像パス文字列と比較することです。「 == 」である必要があります

于 2011-01-04T23:32:49.807 に答える
0

構文が正しくありません。比較の代わりに代入を行う== ステートメントif()の代わりにが必要です。=

また、srcプロパティに直接アクセスするには、DOM 要素からアクセスする必要があります。jQuery オブジェクトから[0]最初のものを取得するために使用できます。img

if (img[0].src == "Images/IMG_4663_bw.jpg"){
    $.noop(); // The noop is called from the global jQuery object.
    //...
于 2011-01-04T23:33:12.503 に答える