【发布时间】:2013-04-22 09:13:42
【问题描述】:
我对 jQuery 有点陌生,有一个基本问题。这是我正在使用的代码:
$(".v65-productDisplay a img").each(function(){
var productHref = $(this).attr("src");
var productCode = productHref.substring(19,productHref.length-6);
这是在 Volusion 框架中,很多东西都是动态生成的。产品图像都有链接到产品的锚标签,但锚和图像都有 id 或类。我可以通过定位锚标记的 href 属性从产品中获取产品代码,因为链接使用 get 变量。一个示例是 /v/vspfiles/photos/MacFRC-1.jpg,其中 MacFRC 是产品代码。
现在我正在尝试生成一个添加到购物车按钮,您可以使用 GET 变量设置这些按钮,因此对于这个,链接(来自商店内)将是 /ShoppingCart.asp?ProductCode=MacFRC。这是我用来生成它作为对 img 的悬停效果的代码。并不是 $(this).parent() 的目标是作为图像父级的锚标记。我这样做是因为 .v65-productDisplay 中还有其他锚标记,但使用的是跨度,我只是在处理图像。
$(this).mouseenter(function(){
$(this).parent().append("<div id='hover_info' style='position:relative;top:-20px;'><div id='add_hover'><a href='/ShoppingCart.asp?ProductCode=" + productCode + "'>Add To Cart</a></div></div>");
})
.mouseleave(function() {
$("#hover_info").remove();
});
现在的问题是,当我将鼠标悬停在新生成的具有链接的“hover_info”div 上时,它就会消失。我猜这是因为从技术上讲,我当时正在“鼠标离开”img,并且 jQuery 正在运行以删除 div。
有没有办法将 jQuery 中的函数设置为“如果我的鼠标离开这个元素以及它的所有子元素”之类的东西?我想这就是我正在寻找的东西。
感谢您的帮助!
【问题讨论】:
-
我头晕目眩。需要问题的演示。另外,什么是“GET 变量”?
-
嗨@Beetroot-Beetroot,GET 变量是一个表单变量(与 POST 变量相反)。它被附加到 URL 上,因此服务器端脚本可以解释要做什么。这就是 Volusion 允许您通过直接链接将商品添加到购物车的方式。
-
服务器端,这样的变量可以称为“GET变量”。由于我们是客户端,因此“URL 查询字符串参数”或只是“查询字符串参数”会是一个更好的术语。
标签: javascript jquery hover mouseleave