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

尝试将 href 更改为“javascript:;” 所以它不会跳转到命名/空(如此顶部)锚点。

于 2012-11-16T00:36:59.487 回答
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>

此外,我会将 onclick 事件添加到锚点而不是图像,即使 HTML5 允许所有标签上的 javascript 处理程序。

<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 回答