0

ヘッダーのスクリプトにこの関数があります(Fireworksによって生成され、機能します)。

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; 
document.MM_sr=new Array;
   for(i=0;i<(a.length-2);i+=3)  
      if ((x=MM_findObj(a[i]))!=null){
         document.MM_sr[j++]=x; 
         if(!x.oSrc) 
            x.oSrc=x.src; 
            x.src=a[i+2];
      }
}

次に、これを含むtdとtrsの束を含むテーブルがあります。

   <td rowspan="2"><a href="javascript:;" onclick="MM_swapImage('slice1_s1','','images/slice1_s2.jpg',1);"><img name="slice1_s1" src="images/slice1_s1.jpg" width="146" height="87" border="0" id="slice1_s1" alt="" /></a></td>

次に、テーブルが終了した後、次のスクリプトを配置します。

<script>
$("img").toggle(function(){
   $(this).MM_swapImage('slice1_s1', '', 'slice1_s2.jpg', 1); 
}, function(){
   $(this).MM_swapImage('slice1_s1', '', 'slice1_s1.jpg', 1); 
});
</script>

テーブルとすべては、Adobe FireworksがWeb用にスライスする方法であるため、すべて生成されます。

これが私がしたいことです:画像がクリックされたとき、私はそれを色を変えたいです(これは私が準備した2番目の画像、slice1_s2.jpgです)。もう一度クリックすると元に戻して欲しいです。これをテストしても何も起こりません。助言がありますか?

4

3 に答える 3

0

フェリックス・クリングのコメントは正しいと思います。使用しているすべてのコードが表示されないため、はっきりとは言えませんが、それは理にかなっています。私はあなたのコードを取り、ローカルバージョンをモックアップしました。$(this).MM_swapImageオブジェクトが定義されていないというエラーが呼び出されました。削除すると、 (すべてのコードがないため)$(this).で別のエラーが発生しましたが、これは問題の根本を示しています。MM_swapImage

しかし、私が持っている質問は、なぜjQueryのtoggleメソッドを使用して画像を交換しないのかということです。あなたはこれを行うことができます:

$("img").toggle(function(){
    $(this).attr("src", "slice1_s2.jpg");
}, function(){
    $(this).attr("src", "slice1_s1.jpg");
});

MM_swapImageを使用する必要があるかどうかわからない。

フェリックス・クリングは正しい答えを得るはずです。toggle私はあなたのイメージを交換するために使用して投げたかっただけです。

お役に立てれば!

于 2010-07-27T17:07:08.957 に答える
0
<script>
$("img").toggle(function(){
   $(this).MM_swapImage('slice1_s1', '', 'images/slice1_s2.jpg', 1); 
}, function(){
   $(this).MM_swapImage('slice1_s1', '', 'images/slice1_s1.jpg', 1); 
});
</script>

パスやイメージを入れようとしましたか? 「画像/」

于 2010-07-27T16:40:20.423 に答える
0

注意すべき点の1つは、Aタグに付加されたOnClickイベントが、後のスクリプトよりも優先されることです。これに基づいてtoggle()が起動することはないと思います。OnClickイベントを削除してみて、それでもうまくいかないかどうかを確認してください。

于 2010-07-27T16:56:00.337 に答える