1

「カートに追加」という画像があり、それをクリックすると、jQuery はカートに追加されたことを示す div を表示します。問題は、画像のロールオーバーが機能するためのリンクである必要があるため、クリックするとページの上部にリンクすることです (

<div class="producttext"> Body Snatcher <!-- product name text --> <div class="pricetag"><img src="pricetags/1499.png" width="113" height="150" /> </div></div> <!-- pricetag, ending both the pricetag and text div -->
  <div class="addtocart"><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('cart','','cart-rollover.png',1)"><img onclick="document.getElementById('addedcartbg').style.display = 'block'" src="cart.png" width="200" height="80" id="cart" /></a> <br /></div>
4

2 に答える 2

0

ここで使用している関数に関連するコードが表示されないため、推測することしかできません。通常、関数呼び出しを使用し、呼び出し元のページに変更を加えたくない場合は、単純に「return false;」を追加します。関数の最後の行として。

ただし、関数から返されるデータがある場合は、関数から false を返す前に、関数が返す値をグローバルに宣言された変数に配置する必要がある場合があります。例として、示されている関数では...

function MM_swapImgRestore() {
  ...do my processing here;
  my_global_variable_1 = (value you want returned from this function)
  return false;
}

functionMM_swapImage('cart','','cart-rollover.png',1) {
  ...do my processing here;
  my_global_variable_2 = (value you want returned from this function)
  return false;
}

アンカータグの場合、同じことができます...

<a href="javascript:return false;"
   onmouseout="MM_swapImgRestore()"
   onmouseover="MM_swapImage('cart','','cart-rollover.png',1)">
<img onclick="document.getElementById('addedcartbg').style.display='block'"
     src="cart.png" width="200" height="80" id="cart" />
</a>

さらに、HTML5 ではすべてのタグで JavaScript ハンドラーを使用できますが、画像ではなく onclick イベントをアンカーに追加します。

<a href="javascript:return false;"
   onclick="document.getElementById('addedcartbg').style.display='block'"
   onmouseout="MM_swapImgRestore()"
   onmouseover="MM_swapImage('cart','','cart-rollover.png',1)">
<img src="cart.png" width="200" height="80" id="cart" />
</a>

これは私がjsfiddleであなたのために挙げた例です

http://jsfiddle.net/Ephiphany/bRF7t/

于 2012-11-16T00:54:52.333 に答える
0

href を「javascript:;」に変更してみてください。そのため、名前付き/空の (上部の) アンカーにはジャンプしません。

于 2012-11-16T00:36:59.487 に答える