jQuery导致元素消失

时间:2014-12-09 16:05:35

标签: jquery opencart

我正在重新设计一个Opencart商店,我遇到了一个由jQuery引起的意外问题。

我必须说,遗憾的是我对jQuery没有任何了解。我是一个只需处理这个问题的图形设计师,所以我无法确定是什么导致它。

所以这就是其中一个页面:http://refletnature.com/tout-sur-la-rose-damascena有一些问题:当你点击图像时,它会淡出,下面的内容会消失。在网站的其他部分也是如此,并且在此处:http://refletnature.com/promotions将产品添加到购物车时。

禁用jQuery时,此问题不存在。 如果有人能帮我解开这个谜团,我会非常高兴!

1 个答案:

答案 0 :(得分:0)

问题在于common.js文件中的这段代码。我只复制了最小化以查看JSFiddle中的问题:http://jsfiddle.net/w9p42kcj/

$('.success img, .warning img, .attention img, .information img').live('click', function() {
    $(this).parent().fadeOut('slow', function() {
        $(this).remove();
    });
}); 

它基本上会在click(或class="information"warningsuccess)的div下的任何图片上收听attention事件,并隐藏所有内容图像的父级向下(非常多)然后删除单击的图像。

您遇到问题的原因是,information类用于您可以点击关闭的信息面板,以及图像周围div的样式。

<强>解决方案:

更改页面中<div class="information">的类以及使用.information的任何CSS样式,以使用其他类名。

在这个JSFiddle中:http://jsfiddle.net/w9p42kcj/1/我只是将该类从information重命名为info,点击行为将停止。


以下说明:

现在注释掉这些行(直到你弄清楚你想要发生什么:

//$('.success img, .warning img, .attention img, .information img').live('click', function() {
//  $(this).parent().fadeOut('slow', function() {
//      $(this).remove();
//  });
//});   

一种解决方案是确保图像位于另一个DIV中,该DIV将控制删除的内容,但点击图像的实际所需目标在网站上并不明显。 单击图像时为什么会消失?

猜测这些div不应该将information作为他们的一个类。我认为点击效果可能是弹出通知/警告/信息等。