Javascript 用于快速查看效果的jQuery-将事件绑定到一个元素
我正在为我的网站创建一个“快速浏览”效果。当有人将鼠标悬停在我网站上的某个产品上时,我会在图像上显示一个“快速查看”按钮,以便用户可以单击该按钮并“放大”该产品。我能够使用jQuery在mouseover上显示“快速查看”按钮,并且能够在mouseout上隐藏“快速查看”按钮。但是,当我在一个产品上鼠标悬停/鼠标悬停时,“快速查看”效果会显示在所有产品上,而不仅仅是我鼠标悬停的特定产品上 我的产品位于id=ProductGrid的列表中。“快速查看”按钮包含在此列表中,其类为.quickView。我尝试使用AddClass()/RemoveClass()函数在li标记中创建触发器,但它仍然导致所有产品都显示“快速查看”。我的目标是在悬停的产品上只显示一次“快速查看”按钮。我意识到我遇到的问题是mousever事件正在应用于所有元素。不知道如何解决这个问题 我是jQuery的新手,任何帮助都将不胜感激 谢谢, 乔恩 以下是我的产品的HTML:Javascript 用于快速查看效果的jQuery-将事件绑定到一个元素,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我正在为我的网站创建一个“快速浏览”效果。当有人将鼠标悬停在我网站上的某个产品上时,我会在图像上显示一个“快速查看”按钮,以便用户可以单击该按钮并“放大”该产品。我能够使用jQuery在mouseover上显示“快速查看”按钮,并且能够在mouseout上隐藏“快速查看”按钮。但是,当我在一个产品上鼠标悬停/鼠标悬停时,“快速查看”效果会显示在所有产品上,而不仅仅是我鼠标悬停的特定产品上 我的产品位于id=ProductGrid的列表中。“快速查看”按钮包含在此列表中,其类为.quickView
吉尔丹
吉尔丹衬衫
20美元
吉尔丹
吉尔丹衬衫
20美元
下面是我对quickView按钮的JavaScript/jQuery:
$('#productGrid li').mouseover(function(){
$(this.addClass('trigger');//将类触发器添加到li元素
$('.trigger').mouseover(函数(){//显示quickView
$('.quickView').show();
});//结束触发器鼠标悬停
});//结束#将鼠标悬停在
$('#productGrid li').mouseout(function(){
$('.trigger').mouseout(函数(){//隐藏快速视图
$('.quickView').hide();
});//结束触发鼠标输出
$('#productGrid li')。removeClass('trigger');
});//结束#productGrid li鼠标退出
两件事:
$('.trigger').mouseover()
(和mouseout()
)处理程序移到其他mouseover处理程序之外,否则每次都会重新绑定。您只需要定义一次。编辑:事实上,我根本不明白为什么要动态添加触发器类。只需将它放在html中开始,或在li
悬停上显示quickView
$('.quickView').show()
。使用该语句,您将使用quickView
类选择所有元素,而不仅仅是最近的元素。由于quickView元素位于li
元素中,因此您只需要获取该元素
$(this.parents(“.li”).find(“.quickView”).show()代码>
请签出此项:。。。看来jqzoom是一个很好的插件@SethenMaleno说jqzoom真的很好。谢谢你帮了苏太多!非常感谢。我添加“trigger”类的唯一原因是想看看是否可以“挑出”每个li元素,因为所有li元素上都显示了“快速查看”按钮。我对这一切都不熟悉,因此添加触发器类是一种尝试和错误最初,我只为quickView设置了隐藏/显示。我试试你的推荐。很快给你回电话。