0

これを機能させるために、さまざまなアプローチを試みました。関数をラップする必要があることはわかっていますが、機能させることはできません。関数は .js ファイルで実行されています。

http://jsfiddle.net/hookedonweb/yq8Hz/

function showLabel(labelName) {
   var labelImgs = jQuery(".content .packaging .labels img");
   var focusImg  = jQuery("#label_" + labelName);

   if (labelImgs.length > 0 && focusImg.length > 0) {
       labelImgs.each(function() { jQuery(this).removeClass("active"); });

       focusImg.addClass("active");
   }
}
4

1 に答える 1

1

PHP と jQuery を混同していると思います。とにかく、コードを大幅に簡素化できます。これはあなたが望むことをするようです。そうでない場合は、質問を明確にする必要があります。

http://jsfiddle.net/yq8Hz/3/

インライン JavaScript を使用しないでください。jQuery を使用しているので、それを使用してコードを html から分離します。これは良い習慣です。データ属性を使用して、参照したい画像を保存できます。

<div><a href="" data-label="macandcheese">See Label</a></div>
<div><a href="" data-label="lasagna">See Label</a></div>
<div><a href="" data-label="beefstroganoff">See Label</a></div>

次に、jQuery のホバーを使用して、アクティブなクラスを追加/削除します。jQuery のdataメソッドを使用して、必要なラベルを取得します。

$('a').hover( function() {
    $('img').removeClass('active');
    $('img#label_' +  $(this).data('label')).addClass('active');
});​
于 2012-11-03T05:22:07.393 に答える